Utilizzo di HTML Agility Pack per ottenere il testo accanto all'immagine?

c# c#-4.0 html-agility-pack web-scraping

Domanda

Ho un po 'di html che ho bisogno di analizzare però

<p class="feature_list">

<img src="candy.gif" alt="candy" title="candy"/>&nbsp;
                        x 3&nbsp;&nbsp;
<img src="lollies.gif" alt="lollies" title="lollies"/>&nbsp;
                        1&nbsp;&nbsp;
<img src="system.gif" alt="system" title="system"/>&nbsp;

                        x 1&nbsp;&nbsp;
<img src="phone.gif" alt="phone" title="phone"/>&nbsp;
                        x 1&nbsp;&nbsp;
</p>

Come puoi vedere c'è un'immagine e poi un testo come "x 3" accanto ad esso.

Quello che voglio fare è passare attraverso ogni immagine e registrare il testo accanto ad essa. Tuttavia, il testo è al di fuori del tag "img".

Mi stavo chiedendo c'è comunque di farlo usando il pacchetto agility HTML?

Risposta accettata

Il seguente codice:

    HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
    doc.Load(yourHtml);

    foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//img"))
    {
        Console.WriteLine(HtmlEntity.DeEntitize(node.NextSibling.InnerText).Trim());
    }

Produrrà:

x 3
1
x 1
x 1

Nota l'utilità HtmlEntity che semplifica la gestione delle entità HTML (come &nbsp; )



Related

Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché