Entfernen nutzloser TextNodes in HtmlAgilityPack

c# html-agility-pack web-scraping

Frage

Ich kratze eine Reihe von Websites mit HtmlAgilityPack. Das Problem ist, dass es darauf besteht, TextNodes an den meisten Stellen einzufügen, die entweder leer sind oder nur eine Masse von \ n, Whitespaces und \ r enthalten.

Sie neigen dazu, mir Probleme zu verursachen, wenn ich childnodes zähle, da Firebug sie nicht zeigt, aber HtmlAgilityPack tut.

Gibt es eine Möglichkeit, HtmlAgilityPack davon abzuhalten, dies zu tun oder diese Textknoten zumindest zu löschen? (Ich möchte aber NÜTZLICHE beibehalten). Während wir hier sind, gilt dasselbe für Kommentar- und Skript-Tags.

Beliebte Antwort

Sie können die folgende Erweiterungsmethode verwenden:

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

Und nenne es so:

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum