Синтаксический анализ HTML-кода с помощью «Agility Pack HTML» в C # - PullRequest
0 голосов
/ 24 июня 2018

Используя HTML Agility Pack, я хочу проанализировать нетегированный текст в HTML-документе. Следующий HTML - это пример структуры HTML, которую я буду обрабатывать, а текст под последним div - это пример текста, который я хочу извлечь. (Тот, который начинается с "Я продаю ..." и заканчивается "... услугами или предложениями")

<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>

Может кто-нибудь сказать мне, как это сделать? Как извлечь этот текст с помощью HTML Agility Pack в .NET?

Заранее спасибо

1 Ответ

0 голосов
/ 24 июня 2018

После загрузки документа используйте xpath для выбора текста, следующего за конкретным узлом.

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

возвращает:

Я продаю свой Jeep Grand Cherokee 2012 года.Джип работает и ездит отлично.Ноль вопросов.Всегда был в хорошем состоянии и обслужен вовремя.Очень надежная машина никогда не оставляла меня в затруднительном положении.Очень здоровый.Все работает как надо.Этот Grand Cherokee станет отличным семейным автомобилем или машиной First.

и visca catalunya!

...