HtmlAgilityPack - Extrae enlaces de una tabla específica

.net c# html-agility-pack

Pregunta

Tengo algunos problemas para encontrar la manera exacta de analizar los enlaces de un sitio. Usando firebug , la xPath exacta de la tabla es:

/html/body/div/form/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[1]/td/div/table/tbody/tr[3]/td/div/table/tbody/tr/td/div/table

También tiene un id = 'ctl00_cp1_GridView1' (que no ha sido de gran ayuda).

Todo lo que quiero hacer es encontrar todos los enlaces en el primero y agregarlos a una lista.

Aquí está mi fragmento de código actual (con un poco de ayuda de esta publicación :

/html/body/div/form/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[1]/td/div/table/tbody/tr[3]/td/div/table/tbody/tr/td/div/table

Sigo recibiendo un error de excepción nula directamente en las filas de HtmlNodeCollection porque no puede encontrar esa tabla específica. He intentado buscar a través de la identificación de la mesa, pero eso tampoco ha ayudado.

Cualquier ayuda para llegar a esa mesa sería apreciada.

Respuesta aceptada

Finalmente pude extraer todos los enlaces utilizando el ejemplo utilizado por Scott Mitchell . Su ejemplo es el siguiente:

var linksOnPage = from lnks in document.DocumentNode.Descendants()
              where lnks.Name == "a" && 
                   lnks.Attributes["href"] != null && 
                   lnks.InnerText.Trim().Length > 0
              select new
              {
                 Url = lnks.Attributes["href"].Value,
                 Text = lnks.InnerText
              };

¡Gracias a jessehouwing y casperOne por responder rápidamente!




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é