Seite 1 von 1
Ajax Inhalt einer Webseite auslesen
Verfasst: Mittwoch 13. Mai 2009, 14:39
von Sunjy
Hi, also mein Problem besteht darin, dass ich auch einer Seite den Quelltext auslesen möchte, aber an einer Stelle Ajax verwendet wird und ich dann eben nicht den Quelltext bekomme von dem was ich im Browser vor mir sehe sondern den Quelltext indem drin steht "Bitte einen Moment warten, die liste wird gleich per Ajax erzeugt"...
hat einer ne Idee wie ich das trotzdem irgendwie auslesen kann ?
Falls es von Interesse ist, ich verwende mechanize bisher.
Sunjy
Verfasst: Mittwoch 13. Mai 2009, 14:42
von DasIch
Die einzige mir bekannte Lösung geht über
Qt.
Verfasst: Mittwoch 13. Mai 2009, 15:01
von lunar
Ajax erzeugt letztlich auch nur normale HTTP-Anforderungen. Wenn die Javascript-Abläufe nicht zu komplex sind, kannst diese über das Lesen des Quelltexts oder das Sniffen des Verkehrs nachvollziehen und dann innerhalb des Python-Programms re-implementieren und so die Liste direkt ohne ohne das Ausführen von Javascript abfragen.
Wenn das nicht reicht oder aus welchen Gründen auch immer nicht möglich ist, gibt es neben Webkit auch noch Selenium, ein Addon zur Automatisierung des Firefox. Der Nachteil daran ist, dass es eine laufende Instanz des Browser benötigt, und daher nicht in jeder Umgebung sinnvoll eingesetzt werden kann.
Verfasst: Mittwoch 13. Mai 2009, 15:18
von Sunjy
DasIch hat geschrieben:Die einzige mir bekannte Lösung geht über
Qt.
wäre im Grunde kein Problem, ich habs jetzt mal so eingebaut wie ich dachte es wird was aber naja ich kenn mich mit QT auch nicht aus, dementsprechend gings auch net.
@lunar:
naja ich könnte das mit dem selenium ja auf einem portable ff laufen lassen... die sache ist nur die, dass ich ständig den proxy welchen muss und das eben über mechanize schön einfach geht.
und ansonsten kann ich leider auch nicht nachvollziehen und re-implementieren ^^ bin was ajax/javascript angeht einfach unerfahren weil ich damit nie gearbeitet habe und es wohla uch nicht wirklich werde. das einzige was ich im quelltext fand ist das: src="AJAX.php?Lid=232509&Typ=2&Prefix="
aber wirklich weiter helfen tuts mir nicht...
Verfasst: Mittwoch 13. Mai 2009, 15:26
von nemomuk
Installier dir halt mal zB Firebug, dann schau auf die geladenen Dateien, dann siehst du recht einfach, was du dann in deinem Programm laden musst.
Verfasst: Mittwoch 13. Mai 2009, 16:22
von Sunjy
das mit firebug versteh ich einfach nicht, ich finde daran eigentlich nichts was mir mehr zeigt als den quelltext :/
und der bringt mir net viel wenn ich net weis wie ich mechanize (oder sonst was) dazu bringt mir den quelltext mit dem ajax dingens auszugeben.
Verfasst: Mittwoch 13. Mai 2009, 19:08
von the-wiz
Klick auf Firebug-Icon -> Konsole -> Konsole aktivieren
Du siehst welche XMLRequests per Javascript gemacht werden...
Meistens werden diese an PHP-Dateien mit POSTs oder GETs geschickt.
Auf Network kannst du ebenfalls sehen was mit XMLRequest "requestet" wird.
Verfasst: Mittwoch 13. Mai 2009, 22:40
von Leonidas
Naja, und in Firebug bekommt man auch den _aktuellen_ DOM-Tree angezeigt, nicht so wie die "Quelltext anzeigen"-Funktion.
Verfasst: Donnerstag 14. Mai 2009, 16:30
von Sunjy
Okay danke, ich habe jetzt zumindest mal einen Link und anscheinend funtioniert es mit "get". aber wie bringe ich mechanize nun dazu mir das anzuzeigen im Quelltext? die seite so öffnen geht nicht, da ich dann ein access denied zurück bekomm.
/edit: kann sein dass ich heute nimmer ins forum schau muss leider ziemlich viel lernen, morgen dann

Verfasst: Montag 25. Mai 2009, 15:52
von snafu
Schau dir vielleicht mal
DOMForm an. Das versteht auf Wunsch auch JavaScript und integriert genau wie mechanize das Modul ClientForm zum Ausfüllen von Feldern. HTML-Code abfragen kann man damit auch und man bekommt den DOM-Tree.