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
Ajax Inhalt einer Webseite auslesen
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.
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.
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.DasIch hat geschrieben:Die einzige mir bekannte Lösung geht über Qt.
@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...
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.
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.
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.
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.
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
/edit: kann sein dass ich heute nimmer ins forum schau muss leider ziemlich viel lernen, morgen dann
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.