Laden Sie die Webseite und analysieren Sie ihr HTML, nachdem asynchrones Javascript abgeschlossen ist

c# html html-agility-pack html-parsing javascript

Frage

Für ein persönliches .net Projekt versuche ich eine skyscanner.net Suchergebnisseite zu laden und zu parsen. Ich weiß, dass Skyscanner APIs für diese Art von Aufgaben hat, aber es scheint, dass es keine kostenlose persönliche Lizenz gibt, die man verwenden kann.

Das Problem ist, dass Skyscanner viele Sekunden benötigt, um einen Suchvorgang abzuschließen. Daher lädt HtmlAgilityPack das Dokument in eine Seite ohne den Inhalt, nach dem ich suche.

Ich habe versucht, das WebBrowser-Objekt und sein Ereignis DocumentCompleted zu verwenden, aber anscheinend wird das Ereignis ausgelöst, bevor die eigentlichen Suchergebnisse in die Seite geladen werden.

Also, gibt es eine Möglichkeit, die Seite zu laden, warten Sie auf die Javascript asyncronous Skripte vollständig füllen Sie die Seite und dann bekommen Sie die HTML zu parsen?

Beliebte Antwort

Sie könnten die PhantomJs verwenden . Ich hatte dieses Problem, fand aber keine Lösung für mein Problem. Ich benutze die PhantomJs in diesem Artikel und lade die Seite nach 10 Sekunden. Meiner Meinung nach beste Lösung für Ihr Problem ist dieser Artikel.




Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum