2013-12-14 6 views
0

Я пытаюсь очистить данные с веб-страницы. Используя пакет HtmlAgility, я могу загрузить определенный div, который я хочу отобразить. Но внутри этого узла div есть другой дочерний узел. Как я могу извлечь innerhtml каждого поднода? Вот что я сделал:Windows phone Web scraping

var webget = new HtmlWeb(); 
var doc = webget.Load("http://www.dmp.gov.bd/application/index/pressdetails/press_159"); 

HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@class='span8 inner_mess']"); 

Здесь я указываю определенную веб-страницу. Это будет не одно и то же время, но это подтверждает, что div тот же, и внутри этого div будут разные подустройства в зависимости от URL.

Если я могу как-то узнать, какие подуглеводы доступны в этом конкретном div через код, я мог бы потом что-то разобраться.

+0

Я уже пытался показать это содержимое div как HTML-страницу. но содержание веб-страниц не является английским, поэтому после кодирования веб-страницы в UTF-8 остаются некоторые сумасшедшие слова, такие как ящик. –

+1

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

ответ

3

Вы хотите рекурсивно отслеживать узлы? (Я не могу сказать, работает ли это, потому что я говорю только по-английски). Вы можете добавить отступы и возврат каретки в довольно сжатые сроки.

private void button1_Click(object sender, EventArgs e) 
{ 
    var webget = new HtmlWeb(); 
    var doc = webget.Load("http://www.dmp.gov.bd/application/index/pressdetails/press_159"); 

    HtmlNode node = doc.DocumentNode.SelectSingleNode("//div[@class='span8 inner_mess']"); 

    TraverseNodes(node.ChildNodes); 
} 

private void TraverseNodes(HtmlNodeCollection nodes) 
{ 
    foreach (HtmlNode node in nodes) 
    { 
     textBox1.Text += node.InnerText; 

     TraverseNodes(node.ChildNodes); 
    } 
}