Как я могу получить весь контент внутри с помощью пакета Agility Pack?

c# html-agility-pack screen-scraping

Вопрос

Поэтому я пишу приложение, которое будет делать небольшое очищение экрана. Я использую HTML Agility Pack для загрузки всей HTML-страницы в экземпляр HtmlDocoument называемый 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> 

Поэтому мне просто нужно получить данные во 2-й строке. Как я могу это сделать? Должен ли я использовать регулярное выражение или что-то еще?

Обновление: вот как я загружаю doc

HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(Url);

Принятый ответ

Поскольку вы используете Html Agility Pack, я бы предложил использовать методы, которые он предоставляет, чтобы найти нужную вам информацию. Существует несколько способов навигации по документу, но одним из наиболее кратким является использование XPath . В этом случае вы можете использовать что-то вроде этого:

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

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



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow