Seite 1 von 1

urlopen gibt nicht vollständige html seite zurück

Verfasst: Montag 17. Oktober 2005, 12:41
von Martina
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

Verfasst: Montag 17. Oktober 2005, 13:24
von jens
Welche Seite versuchst du denn runter zu laden???

Vielleicht gibt es eine Browser-Weiche!

Verfasst: Montag 17. Oktober 2005, 14:17
von Martina
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?

Verfasst: Montag 17. Oktober 2005, 14:34
von jens
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 ;)

Verfasst: Montag 17. Oktober 2005, 14:47
von Martina
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?

Verfasst: Montag 17. Oktober 2005, 15:08
von jens
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...

Verfasst: Montag 17. Oktober 2005, 15:19
von Martina
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

Verfasst: Montag 17. Oktober 2005, 15:22
von jens
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...

Verfasst: Montag 17. Oktober 2005, 15:29
von Leonidas
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.

Verfasst: Montag 17. Oktober 2005, 22:43
von BlackJack
Noch eine Idee woran es liegen könnte: Enthalten die Seiten vielleicht JavaScript, das diese div-Tags erst im Browser erzeugt?

Verfasst: Dienstag 18. Oktober 2005, 06:04
von jens
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...

Hurra!

Verfasst: Dienstag 18. Oktober 2005, 11:12
von Martina
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.