Laden...

Quellcode samt Ajax auslesen...

Erstellt von blutiger_anfänger vor 15 Jahren Letzter Beitrag vor 15 Jahren 2.418 Views
B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren
Quellcode samt Ajax auslesen...

Hallo liebe C-Sharpler,
ich habe ein mehr oder weniger großes Problem... Ich möchte gerne Informationen aus einer Website auslesen.
Wenn ich den Quelltext habe, dann gelingt das auch ganz gut mit RegularExpressions.

Mein eigentliches Problem ist, das die Website seit einiger Zeit mit Ajax arbeitet. Wenn ich die Seite, aus welcher ich die Informationen haben will, im WebbrowserElement aufrufe, dann wird mir alles angezeigt, auch die geforderten Informationen. Nehme ich mir nun den Quelltext sind keine der Informationen aufzufinden...

Ich habe das ganze auch spaßeshalber einmal mit Firefox probiert. Die Seite wird richtig angezeigt. Bei "Quelltext anzeigen" fehlten die Informationen. Wenn ich die Informationen dann markiert habe und "ausgewählten Quelltext" anzeigen ließ, waren alle Informationen da.

Also muss es doch irgendwie möglich sein...
Ich habe leider absolut keine Ahnung wo ich da ansetzen soll... Ich hoffe ihr könnt mir helfen.

Liebe Grüße,
ein blutiger Anfänger 😉

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

R
119 Beiträge seit 2008
vor 15 Jahren

Das Problem (andere nennen es auch vorteil😉 ) bei AJAX ist ja gerade, dass beim ersten (oder x-ten) laden der Webseite nicht alle informationen verfügbar sind, sondern erst "bei bedarf" nachgeladen werden müssen.

wie du an diese informationen rannkommst, ganz einfach (sogar leichter als mit reg exp parsen...) geh durch den JavaScript. Dort sind die Zielanfragen definiert. Wenn du diese ausführst, bekommst du meistens eine wunderschöne XML Datei mit allen infos die du brauchst...

ich würd dir empfehlen selber eine AJAX webseite zu basteln, dann findest du dich in dem wust der JS-Scriptes leichter zurecht...

B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren

stimmt schon, aber vorerst würde es mir reichen wenn ich einfach 1 zu 1den quelltext bekommen könnte, von der Seite die mir im Browser angezeigt wird.

Weil ich verstehe einfach nicht warum etwas angezeigt wird, was im Quelltext nicht drinsteht. Dann muss der Quellcode ja zumindest irgendwo im Browsercache oder so liegen. Denn damit mir ein Browser etwas anzeiogt muss ja auch in irgendeiner Weise HTML, CSS, etc. vorhanden sein.

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

5.941 Beiträge seit 2005
vor 15 Jahren

Hallo blutiger_anfänger

Das liegt daran dass der Inhalt der per AJAX nachgeladen wird, ins DOM (Document Object Model) mithife von Javascript eingefügt wird.

Diesen kannst du auch nur per Javascript auslesen.
Schau dir mal das DOM bspw. per Firebug an, dann verstehst du das auch eher:

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

R
119 Beiträge seit 2008
vor 15 Jahren

stimmt schon, aber vorerst würde es mir reichen wenn ich einfach 1 zu 1den quelltext bekommen könnte, von der Seite die mir im Browser angezeigt wird.

das reicht dir ja gerade nicht...

Eine AJAX Seite ist veränderlich. Mit der Zeit wird der Quellcode (das DOM) verändert.

Mit anderen/simplen Worten: der HTML Quellcode nützt dir nichts. du musst die Aktionen des User "nachbauen"

wenn der gewünschte Text auf deiner Zielwebseite erst geladen wird, wenn der User auf einen Button drückt. Dann kannst du mit deinem Parser so viel HTML-Code parsen wie du möchtest. Die informationen ist noch nicht auf der Webseite.

Durch den Klick auf den Button wird ein JavaScript ausgelöst, der den Text von einem Webservice läd -> diese Abfrage musst du ausführen, das parsen der Webseite ist (fast) überflüssig...

B
blutiger_anfänger Themenstarter:in
293 Beiträge seit 2008
vor 15 Jahren

Ok, da lag wohl ein Missverständnis vor. Das Parsen sprich das Scritp hatte ich ausgeführt und dann bei Webbrowser.DocumentCompleted den Quelltext geparsed. Und genau das war Mist. Denn das DocumentCompleted Event tritt früher ein, als bis die Reaktion des Scripts, welches zuvor aufgerufen wurde. Ich prüfe nun in einem kurzen Intervall, ob das Ajaxelement schon geladen wurde und wenn ja parse ich mir dann den Quelltext...

Haut also doch alles hin. War einfach nur ein Logikfehler.

Liebe Grüße
und danke nochmals,
Raffi

Wenn ich nicht hier bin, findest du mich auf code-bude.net.