Eliminando TextNodes inútiles en HtmlAgilityPack

c# html-agility-pack web-scraping

Pregunta

Estoy raspando una serie de sitios web usando HtmlAgilityPack. El problema es que parece insistir en insertar TextNodes en la mayoría de los lugares que están vacíos o simplemente contienen una masa de \ n, espacios en blanco y \ r.

Tienden a causarme problemas cuando cuento childnodes, ya que firebug no los muestra, pero HtmlAgilityPack sí lo hace.

¿Hay alguna forma de decirle a HtmlAgilityPack que deje de hacerlo o al menos que elimine estos nodos de texto? (Quiero conservar los ÚTILES aunque). Mientras estamos aquí, lo mismo para las etiquetas de Comentario y Script.

Respuesta popular

Puede utilizar el siguiente método de extensión:

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

Y llámalo así:

List<HtmlNode> nodes = someNode.GetChildNodesDiscardingTextOnes();


Related

Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué