Удаление бесполезных текстовых полей в HtmlAgilityPack

c# html-agility-pack web-scraping

Вопрос

Я очищаю несколько сайтов, используя HtmlAgilityPack. Проблема в том, что он, похоже, настаивает на вставке TextNodes в большинстве мест, которые либо пусты, либо просто содержат массу \ n, whitespaces и \ r.

Они, как правило, вызывают у меня проблемы, когда я подсчитываю дочерние элементы, поскольку firebug их не показывает, но HtmlAgilityPack делает.

Есть ли способ сообщить HtmlAgilityPack прекратить это делать или, по крайней мере, очистить эти текстовые файлы? (Я хочу сохранить ПОЛЕЗНЫЕ, хотя). Пока мы здесь, то же самое для тегов Comment и Script.

Популярные ответы

Вы можете использовать следующий метод расширения:

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

И назовите это так:

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


Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему