HTML-Code auslesen problem - JavaScript läd nachträglich Daten

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von FreakJNS.

    HTML-Code auslesen problem - JavaScript läd nachträglich Daten

    hallo. sry das ich jetzt auch noch einen solchen thread aufmache aber ich komm einfach nicht weiter:
    ich will den HTML quellcode einer internetseite auslesen. das Problem, die Comments (die ich auch haben will) werden von java-script nachträglich geladen sodass ich mit herkömmlichen methoden (webRequest/Response und dem webbrowser-control) scheinbar nicht weiterkomme. Die vermutung, dass die comments von JavaScript geladen werden hat sich bestätigt als ich die ausführung der Scripts in Firefox deaktiviert habe und keine comments geladen wurden.

    Lese ich den HTML Text der seite aus stoße ich auf diese stelle die denke ich für alles verantwortlich ist:

    </div>
    <script type="text/javascript">$.get('api.php', {'id': 2210463}, function (data) { $('#comments_image').html(data)});</script>
    <br />



    Meine Frage lautet also: Wie komme ich an den GESAMTEN Html-Quellcode ran?
    (Komisch ist, wenn ich in Firefox mittels rechtsklick/seite speichern unter.. die seite abspeicher und das .htm dokument im editor öffne finde ich die comments im klartext wieder..)

    thx!
    Wenn du die Seite speicherst, und du dann den gesamten Code siehst, kannst du mittels Net.WebClient.DownloadFileAsync(New Uri("http://site.de/comments.html"), "comments.html") den Quellcode herunterladen und anschließend auswerten.
    Nun mit dem WebBrowser Control KÖNNTEST du an die Comments kommen, ist aber ebenso kompliziert als wenn das Javascript parsed.

    Was ich an deiner stelle machen würde:

    Die Comments werden also per AJAX geladen, dies geschieht aber über eine ganz normale URL und diese URL kannst du somit auch einfach über den WebRequest abfragen, wenn es ein Login ist, musst du natürlich auch die Cookies mitsenden. An die URL kommst du über das Live Header AddOn für den Firefox.
    Vielen Dank Dodo! Das Firefox-Addon hat mir den tag gerettet xD

    ich weiß zwar nicht wie und warum das ganze funktioniert aber egal^^ hab mit dem plugin den HTTP-Header auseinandergenommen und geprüft, was im header sein muss, damit ich durch die wiederholenfunktion die comments angezeigt bekomme. iwann war das ganze auf Host und "x-Requested-With" reduziert. hab dann ein bisschen probiert und bin auf diesen code gekommen der sogar funst:

    Dim QuellCode As String = ""
    Dim req As Net.WebRequest = Net.WebRequest.Create("http://URL.COM/api.php?id=2210463")
    req.Headers.Add("X-Requested-With", "XMLHttpRequest")
    Dim res As Net.WebResponse = req.GetResponse
    Me.Text = req.Headers.Get("host")
    Dim reader As New IO.StreamReader(res.GetResponseStream)
    QuellCode = reader.ReadToEnd