urlopen gibt nicht vollständige html seite zurück

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Martina

Montag 17. Oktober 2005, 12:41

Hallo,

ich versuche eine html Seite mit urlib auszulesen. Klappt auch soweit prima, bis auf die div Tags am Ende der Seite, die nicht mitkommen.
Leider stehen da wichtige infos drinn. Kennt jemand das Problem?

Ich habe es auch mit urlib2 versucht:
req = urllib2.Request(url)
handle = urllib2.urlopen(req)
html = handle.read()

Wenn ich die Seite mit dem Browser speichere, sind die Div Tags am Ende da, wenn ich das 'html' von oben printe, nicht.
</BODY>
</HTML> steht trotzdem als letzes da, bloss die Divs davor fehlen.

Für Hilfe dankbar,
Martina
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 17. Oktober 2005, 13:24

Welche Seite versuchst du denn runter zu laden???

Vielleicht gibt es eine Browser-Weiche!

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Martina

Montag 17. Oktober 2005, 14:17

jens hat geschrieben:Welche Seite versuchst du denn runter zu laden???

Vielleicht gibt es eine Browser-Weiche!
Das ist eine lokale Seite, deshalb kann ich keinen link posten.
Ich habe es auch versucht, mich als Explorer auszugeben - kein Erfolg.
Könnte es natürlich nochmal als Mozilla versuchen, aber ich dachte, es liegt vielleicht an was anderem?
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 17. Oktober 2005, 14:34

Also wenn es eine Lokale URL ist, dann kann man eine Browser Weiche anhand des User-Agent auch ausschließen, oder?

Aber ich glaube ja nicht das es an urllib liegt... Wäre ja eine eingebaute Filter-Funktion ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Martina

Montag 17. Oktober 2005, 14:47

Das html kommt aus einem lokalen Mascot - Server: http://www.matrixscience.com/
Glaube also eigentlich auch nicht an Browserweichen.

Aber was könnte es denn noch sein?
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 17. Oktober 2005, 15:08

Du könntest mal mit http://www.networkchemistry.com/products/packetyzer/ nachsehen, welche Daten wirklich über die Leitung gehen... Einmal mit urllib und einmal mit dem Browser...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Martina

Montag 17. Oktober 2005, 15:19

Danke für den link, sieht leider nicht so einfach aus, als würde ich das nebenbei noch eben vor Feierabend schaffen. Aber morgen dann!

Grüße
Martina
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Montag 17. Oktober 2005, 15:22

Ja einfach ist das Tool nicht, aber ein Packet-Sniffer kann auch nicht viel einfacher sein, denke ich... Irgendwie muß man da halt rausfiltern welche Daten für einen wichtig sind. Gerade wenn im Netz viele Daten durchrasseln, ist es nicht gerade einfach...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 17. Oktober 2005, 15:29

jens hat geschrieben:Ja einfach ist das Tool nicht, aber ein Packet-Sniffer kann auch nicht viel einfacher sein, denke ich...
Nein, vor allem wenn man Packetyzer mit dem Postscanner auf dem er aufbaut vergleicht: Ethereal.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Montag 17. Oktober 2005, 22:43

Noch eine Idee woran es liegen könnte: Enthalten die Seiten vielleicht JavaScript, das diese div-Tags erst im Browser erzeugt?
Benutzeravatar
jens
Moderator
Beiträge: 8482
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Dienstag 18. Oktober 2005, 06:04

BlackJack hat geschrieben:JavaScript, das diese div-Tags erst im Browser erzeugt?
Dann siehst du diese aber nicht direkt in den Sourcen. Aber ich glaub im DOM inspector...

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Martina

Dienstag 18. Oktober 2005, 11:12

Grad wollte ich mit dem Packetyzer anfangen, da habe ich es nochmal schnell als Mozilla probiert und da sind sie, die Divs!

Code: Alles auswählen

opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
handle = opener.open(filename)
Wahrscheinlich hatte ich bei dem Versuch als Explorer einfach Mist gebaut.
Trotzdem allen vielen Dank - gut zu wissen, das es solche tools wie Packetyzer gibt.

Grüße
Martina

Edit (Leonidas): Code in Python-Tags gesetzt.
Antworten