c#
  • html
  • xpath
  • html-agility-pack
  • web-scraping
  • 2010-10-02 10 views 10 likes 
    10

    Je suis en train de scrapper un site Web qui utilise Javascript pour remplir dynamiquement le contenu d'un site Web avec le pack Html Agility.Html Agility Pack: Trouver un noeud de commentaire

    Fondamentalement, je cherchais le XPATH "\\div[@class='PricingInfo']", mais ce noeud div était écrit dans le DOM via Javascript. Par conséquent, lorsque je charge la page via le pack Html Agility, le XPATH mentionné ci-dessus est introuvable.

    Il se trouve qu'il y a un commentaire devant un bloc de script particulier que je veux analyser.

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

    Pour ce site, il y a beaucoup de blocs de script et donc je besoin de le réduire par la découverte de ce commentaire généré automatiquement <!--Module 328 Buying Options Table--> et le frère de ce nœud serait le bloc de script correct.

    Une idée sur la façon dont je peux rechercher un commentaire particulier, puis obtenir juste le bloc de script adjacent?

    Merci!

    +1

    +1 pour ne pas utiliser les expressions régulières! – TrueWill

    Répondre

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

    a travaillé comme un charme. Je vous remercie! Maintenant, j'ai besoin d'un moyen d'analyser l'objet Javascript. – Abe

    +0

    Juste pour ajouter une chose de plus. Une fois que j'ai eu la note de script, j'ai été capable d'analyser les informations dont j'avais besoin en utilisant des expressions régulières. Merci! – Abe

     Questions connexes

    • Aucun problème connexe^_^