Schaben Daten dynamisch generiert werden, indem JavaScript im html-Dokument mithilfe von C#
Wie kann ich das kratzen von Daten, die dynamisch generiert werden, indem JavaScript im html-Dokument mithilfe von C#?
Mit WebRequest
und HttpWebResponse
in der C# - Bibliothek, ich bin in der Lage, um die gesamte html-Quellcode als string, aber die Schwierigkeit ist, dass die Daten möchte ich nicht in den Quellcode, die Daten werden dynamisch erzeugt durch JavaScript.
Auf der anderen Seite, wenn die Daten, die ich will, sind bereits in den source-code, dann bin ich in der Lage, Sie leicht mithilfe von Regulären Ausdrücken.
Heruntergeladen habe ich HtmlAgilityPack
, aber ich weiß nicht, ob Sie aufpassen würde, den Fall, wo die Objekte erzeugt werden dynamisch durch JavaScript...
Vielen Dank!
- Sie müssen führen Sie es durch eine JavaScript-engine besitzt. Vielleicht so etwas wie Awesomium?
- Schnappen Sie sich einen Blick hier: stackoverflow.com/questions/18539491/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die WebRequest-Fragen Sie den server, geben Sie die Seite Datei, diese Datei den Inhalt wurde noch nicht analysiert/ausgeführt durch einen web-browser und so der javascript-Code auf, es ist noch nicht alles getan.
Müssen Sie ein tool verwenden, zum ausführen der JavaScript-Code auf der Seite, wenn Sie möchten, um zu sehen, was die Seite aussieht, nachdem analysiert wurde, die von einem browser. Eine option, die Sie haben, ist mit dem eingebauten .net-web-browser-Steuerung: http://msdn.microsoft.com/en-au/library/aa752040(v=vs. 85).aspx
Den web-browser Steuern können, navigieren Sie zu und laden Sie die Seite und dann können Sie die Abfrage der DOM, die verändert wurden, durch das JavaScript auf der Seite.
BEARBEITEN (Beispiel):
Konnte man einen Blick auf ein tool wie Selenium zum Schaben Seiten, die Sie Javascript.
http://www.andykelk.net/tech/headless-browser-testing-with-phantomjs-selenium-webdriver-c-nunit-and-mono