2017-02-01 2 views
2

Я пытался извлечь какой-либо html из нашего Центрального банка, используя HtmlAgilityPack.Как получить динамически загруженный контент с помощью HtmlAgilityPack

Here - Еженедельная учетная запись. Вторая половина Заявления «Учетная запись в соответствии с Бангладешским банковским ордером 1972 года .....» содержит строку «Золотая монета и слиток А.».

Я попытался с помощью следующего кода -

var get = new HtmlWeb(); 
for (int i = 1; i < 8284; i++) 
{ 
    var dat = get.Load("https://www.bb.org.bd/pub/weekly/staffair/state_affairs.php?prId=" + i); 
    var htm = dat.DocumentNode.InnerHtml; 
    if (htm.Contains("Gold Coin and Bullion")) 
    { 
     File.WriteAllText(@"C:\Test\" + i + ".txt", htm); 
     Console.WriteLine(i + " written"); 
    } 
} 

Если я правой кнопкой мыши на странице и нажмите на кнопку «Просмотр источника» Я не вижу линию «А. Золотая монета и Bullion». dat.DocumentNode.InnerHtml возвращает то же самое, в результате файл не записывается в тестовую папку. Но я могу видеть всю информацию, если я нажму «Inspect element» вместо «View source».

Как получить эту строку с помощью HtmlAgilityPack?

ответ

1

Причина, по которой вы не можете увидеть ее в источнике, состоит в том, что данные, которые вы ищете, загружаются через javascript (xhr) в ваш браузер после начальной загрузки страницы. HtmlAgiligyPack - это просто парсер HTML и не поддерживает запуск javascript и загрузку дополнительных ресурсов. Есть и другие способы сделать это, но вам нужно будет использовать другой инструмент. Это, вероятно, хорошее место, чтобы начать:

Load a DOM and Execute javascript, server side, with .Net

+0

Селена вместе с PhantomJS решает эту проблему, но он записывает некоторую нежелательную информацию в окне консоли, например. '[INFO - 2017-02-03T17: 45: 00.492Z] GhostDriver - Main - работает на порту ....'. Я также пробовал с 'SimpleBrowser.WebDriver', но он ведет себя как' HtmlAgilityPack'. Есть ли какой-либо выход для получения всей информации с помощью 'SimpleBrowser.WebDriver'? –

Смежные вопросы