Rimozione di TextNode inutili in HtmlAgilityPack

c# html-agility-pack web-scraping

Domanda

Sto raschiando un certo numero di siti web usando HtmlAgilityPack. Il problema è che sembra insistere sull'inserimento di TextNode nella maggior parte dei posti che sono vuoti o contengono solo una massa di \ n, spazi bianchi e \ r.

Tendono a causare problemi durante il conteggio dei childnodes, poiché firebug non li mostra, ma lo fa HtmlAgilityPack.

C'è un modo per dire a HtmlAgilityPack di smettere di farlo o almeno di cancellare questi textnodes? (Voglio mantenere quelli UTILI però). Mentre siamo qui, la stessa cosa per i tag Comment e Script.

Risposta popolare

È possibile utilizzare il seguente metodo di estensione:

static class HtmlNodeExtensions
{
    public static List<HtmlNode> GetChildNodesDiscardingTextOnes(this HtmlNode node)
    {
        return node.ChildNodes.Where(n => n.NodeType != HtmlNodeType.Text).ToList();
    }
}

E chiamalo così:

static class HtmlNodeExtensions
{
    public static List<HtmlNode> GetChildNodesDiscardingTextOnes(this HtmlNode node)
    {
        return node.ChildNodes.Where(n => n.NodeType != HtmlNodeType.Text).ToList();
    }
}



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é