Come posso ottenere tutto il contenuto all&#39;interno <td> tag utilizzando un Agility Pack HTML?

c# html-agility-pack screen-scraping

Domanda

Quindi sto scrivendo un'applicazione che farà un piccolo scraping dello schermo. Sto utilizzando l' HTML Agility Pack per caricare un'intera pagina HTML in un'istanza di HtmlDocoument chiamata doc . Ora voglio analizzare quel documento, cercando questo:

<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> 

Quindi ho solo bisogno di ottenere i dati nella seconda riga. Come posso fare questo? Dovrei usare una regex o qualcos'altro?

Aggiornamento: ecco come sto caricando il mio doc

<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> 

Risposta accettata

Dato che stai già utilizzando Html Agility Pack, ti suggerisco di utilizzare i metodi che fornisce per trovare le informazioni che desideri. Ci sono alcuni modi per navigare nel documento, ma uno dei più concisi è usare XPath . In questo caso potresti usare qualcosa come questo:

HtmlDocument doc = new HtmlDocument();
doc.Load("input.html");
HtmlNode node = doc.DocumentNode
                   .SelectNodes("//table[@cellspacing='3']/tr[2]/td")
                   .Single();
string text = node.InnerText;




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché