Así que estoy escribiendo una aplicación que hará un pequeño raspado de pantalla. Estoy usando el paquete de agilidad HTML para cargar una página HTML completa en una instancia de HtmlDocoument
llamada doc
. Ahora quiero analizar ese documento, buscando esto:
<table border="0" cellspacing="3">
<tr><td>First rows stuff</td></tr>
<tr>
<td>
The data I want is in here <br />
and it's seperated by these annoying <br /> 's.
No id's, classes, or even a single <p> tag. </p> Just a bunch of <br /> tags.
</td>
</tr>
</table>
Así que solo necesito obtener los datos dentro de la segunda fila. ¿Cómo puedo hacer esto? ¿Debo usar una expresión regular o algo más?
Actualización: Así es como estoy cargando mi doc
HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(Url);
Como ya está usando Html Agility Pack , sugeriría usar los métodos que proporciona para encontrar la información que desea. Hay algunas formas de navegar por el documento, pero una de las más concisas es usar XPath . En este caso podrías usar algo como esto:
HtmlDocument doc = new HtmlDocument();
doc.Load("input.html");
HtmlNode node = doc.DocumentNode
.SelectNodes("//table[@cellspacing='3']/tr[2]/td")
.Single();
string text = node.InnerText;