Analyse non étiquetée HTML avec "HTML Agility Pack" en C #

.net c# html html-agility-pack web-scraping

Question

En utilisant HTML Agility Pack, je souhaite analyser un texte non balisé dans un document HTML. Le prochain HTML est un exemple de la structure HTML que je vais traiter et le texte situé sous la dernière div est un exemple du texte que je veux extraire. (Celui qui commence par "je vends ..." et se termine par "... services ou offres")

<div class="mapbox">
    <div id="map" class="viewposting" data-latitude="32.965732" data-longitude="-96.882528" data-accuracy="22"></div>
    
    <p class="mapaddress">
        <small>
        (<a target="_blank" href="https://maps.google.com/maps/preview/@32.965732,-96.882528,16z">google map</a>)
        </small>
    </p>
</div>
    <p class="attrgroup">

            <span><b>2012 jeep grand cherokee laredo</b></span>
            <br>
    </p>
    <p class="attrgroup">
            <span>VIN: <b>ask me</b></span>
            <br>
            <span>condition: <b>excellent</b></span>
            <br>
            <span>cylinders: <b>6 cylinders</b></span>
            <br>
            <span>drive: <b>rwd</b></span>
            <br>
            <span>fuel: <b>gas</b></span>
            <br>
            <span>odometer: <b>98000</b></span>
            <br>
            <span>title status: <b>clean</b></span>
            <br>

            <span>transmission: <b>automatic</b></span>
            <br>

    </p>
    
        <div class="print-information print-qrcode-container">
            <p class="print-qrcode-label">QR Code Link to This Post</p>
            <div class="print-qrcode" data-location="east"></div>
        </div>
I am selling my 2012 Jeep Grand Cherokee. The Jeep runs and drives great. Zero issues. Always been well maintained and serviced on time. Very dependable car has never left me stranded. Very healthy. Everything works like it should. This Grand Cherokee would make a great family car or First car.<br>
<br>
*3.6 V6 <br>
*Automatic Transmission <br>
*98,000 Original Miles<br>
*Leather and Heated Seats<br>
*Navigation<br>
*Back Up Camera <br>
*Good Tires<br>
*Cold A/C Hot Heater <br>
*Clean Texas Title<br>
*Clean Carfax<br>
Much More!!<br>
<br>
Call or Text me for anymore information. <br>
 <a href="/fb/dal/cto/6620220745" class="showcontact" title="click to show contact info" rel="nofollow">show contact info</a>
    
            <li>do NOT contact me with unsolicited services or offers</li>

Quelqu'un peut-il me dire comment faire cela? Comment extraire ce texte en utilisant HTML Agility Pack dans .NET?

Merci d'avance

Réponse acceptée

Après avoir chargé le document, utilisez xpath pour sélectionner le texte suivant un nœud spécifique.

const string xpath = "//div[@class='print-information print-qrcode-container']/following-sibling::text()[1]";
string text = doc.DocumentNode.SelectSingleNode(xpath).InnerText;

résultats:

Je vends mon Jeep Grand Cherokee 2012. La jeep fonctionne et roule bien. Zéro problème. Toujours été bien entretenu et entretenu à temps. Voiture très fiable ne m'a jamais laissé échoué. En très bonne santé. Tout fonctionne comme il se doit. Ce Grand Cherokee ferait une excellente voiture familiale ou première voiture.

et visca catalunya!



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow