Parse Compelete Página Web

c# html-agility-pack parsing

Pregunta

¿Cómo analizar una página web HTML completa y no nodos específicos utilizando HTML Agility Pack o cualquier otra técnica?

Estoy usando este código, pero este código solo analiza el nodo específico, pero necesito una página completa para analizar con contenido limpio y claro

List<string> list = new List<string>();
string url = "https://www.google.com";
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load(url);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//a"))
{
   list.Add(node.InnerText);
}

Respuesta aceptada

Para obtener todos los nodos de texto descendente usa algo como

var textNodes = doc.DocumentNode.SelectNodes("//text()").
                                 Select(t=>t.InnerText);

Para obtener todos los nodos de texto descendente no vacíos

var textNodes = doc.DocumentNode.
                    SelectNodes("//text()[normalize-space()]").
                    Select(t=>t.InnerText);

Respuesta popular

Haga SelectNodes("*") . '*' (asterisco) Es el selector de comodines y obtendrá todos los nodos de la página.



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é