Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Quellcode samt Ajax auslesen...
blutiger_anfänger
myCSharp.de - Member



Dabei seit:
Beiträge: 293
Herkunft: Meerbusch, NRW

Themenstarter:

Quellcode samt Ajax auslesen...

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von blutiger_anfänger am .
Wenn ich nicht hier bin, findest du mich auf code-bude.net.
private Nachricht | Beiträge des Benutzers
Raptor 2101
myCSharp.de - Member



Dabei seit:
Beiträge: 119

beantworten | zitieren | melden

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...
private Nachricht | Beiträge des Benutzers
blutiger_anfänger
myCSharp.de - Member



Dabei seit:
Beiträge: 293
Herkunft: Meerbusch, NRW

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Peter Bucher
myCSharp.de - Experte

Avatar #jVxXe7MDBPAimxdX3em3.jpg


Dabei seit:
Beiträge: 5.940
Herkunft: Zentralschweiz

beantworten | zitieren | melden

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:
- http://www.aspnetzone.de/blogs/peterbucher/archive/2007/03/12/firefox-addon-firebug-html-css-javascript-inspector.aspx


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

- https://peterbucher.ch/ - Meine persönliche Seite
- https://fpvspots.net/ - Spots für FPV Dronenflüge
private Nachricht | Beiträge des Benutzers
Raptor 2101
myCSharp.de - Member



Dabei seit:
Beiträge: 119

beantworten | zitieren | melden

Zitat von blutiger_anfänger
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...
private Nachricht | Beiträge des Benutzers
blutiger_anfänger
myCSharp.de - Member



Dabei seit:
Beiträge: 293
Herkunft: Meerbusch, NRW

Themenstarter:

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers