2010-10-02 5 views
10

Ich scrappe eine Website, die Javascript verwendet, um den Inhalt einer Website mit dem Html Agility-Paket dynamisch zu füllen.Html Agility Pack: Kommentar-Knoten finden

Grundsätzlich suchte ich nach der XPATH "\\div[@class='PricingInfo']", aber dieser div-Knoten wurde über Javascript in das DOM geschrieben.

Also, wenn ich die Seite über das Html Agility Pack laden, kann die oben erwähnte XPATH nicht gefunden werden.

Es stellt sich heraus, dass es einen Kommentar vor einem bestimmten Skriptblock gibt, den ich analysieren möchte.

<!--Module 328 Buying Options Table--> 
<script type="text/javascript" language="JavaScript"> 
    var data = { 
     price: 30.00 
    } 
</script> 

Für diese Seite gibt es viele Skriptblocks und so würde ich es verengen muß durch die Feststellung nach unten dieser automatisch generierten Kommentar <!--Module 328 Buying Options Table--> und den Geschwister dieses Knotens der richtige Skriptblock sein würde.

Irgendeine Idee, wie ich nach einem bestimmten Kommentar suchen und dann nur den angrenzenden Skriptblock bekommen kann?

Vielen Dank!

+1

+1 für keine regulären Ausdrücke! – TrueWill

Antwort

15
htmlDoc.DocumentNode.SelectSingleNode("//comment()[contains(., 'Buying Options')]/following-sibling::script") 
+0

arbeitete wie ein Charme. Danke! Jetzt muss ich das Javascript-Objekt analysieren. – Abe

+0

Nur um noch eine Sache hinzuzufügen. Nachdem ich die Skriptnotiz erhalten hatte, konnte ich die benötigten Informationen mithilfe von regulären Ausdrücken analysieren. Vielen Dank! – Abe