2010-10-02 29 views
10

Estoy raspando un sitio web que usa Javascript para poblar dinámicamente el contenido de un sitio web con el paquete Html Agility.Html Agility Pack: Buscar Nodo de comentario

Básicamente, estaba buscando el XPATH "\\div[@class='PricingInfo']", pero ese nodo div se escribía en el DOM a través de Javascript.

Por lo tanto, cuando cargo la página a través del paquete Html Agility, no se encuentran las XPATH mencionadas anteriormente.

Resulta que hay un comentario antes de un bloque de script en particular que quiero analizar.

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

Para este sitio, hay muchos bloques de script y por lo que habría que limitar la búsqueda por el hallazgo de este comentario autogenerado <!--Module 328 Buying Options Table--> y el hermano de ese nodo sería el bloque de script correcto.

¿Alguna idea sobre cómo puedo buscar un comentario en particular y luego simplemente obtener el bloque de secuencia de comandos adyacente?

¡Gracias!

+1

+1 por no usar expresiones regulares! – TrueWill

Respuesta

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

funcionó como un encanto. ¡gracias! Ahora, necesito una forma de analizar el objeto Javascript. – Abe

+0

Solo para agregar una cosa más. Una vez que obtuve la nota del guión, pude analizar la información que necesitaba usando expresiones regulares. ¡Gracias! – Abe

Cuestiones relacionadas