htmlagilityPack: веб-страница не возвращает полный HTML - PullRequest
0 голосов
/ 23 мая 2019

Используя htmlagilityPack, пытаемся получить все ссылки href. Но веб-страница не возвращает все ссылки.

Я попробовал в браузере и увидел, что пока вы не прокрутите всю страницу, она не показывает все ссылки. Затем я попытался изменить размер (увеличить) окна браузера, чтобы можно было просматривать все содержимое страницы без прокрутки вниз. В тот момент все ссылки появились. Может быть, Java должен быть запущен ....

HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument Doc = web.Load("https://www.verkkokauppa.com/fi/catalog/438b/Televisiot/products?page=1");

foreach (HtmlNode item in Doc.DocumentNode.SelectNodes("//li[@class='product-list-grid__grid-item']/a"))

{                                                                               
 debug.WriteLine(item.GetAttributeValue("href", string.Empty));                      
}

На одной странице есть 24 ссылки на товары, но я получаю только 15 из них.

1 Ответ

1 голос
/ 23 мая 2019

Проверьте вкладку Сеть в Chrome на этой странице.Есть запросы ajax на https://www.verkkokauppa.com/resp-api/product?pids=467610.Таким образом, продукты загружаются с использованием JavaScript.

Вы не можете просто активировать JavaScript здесь.HtmlAgilityPack - это анализатор html.Если вы хотите работать с динамическим контентом, вам нужен движок браузера.Я думаю, что вы должны проверить Селен и фантомы .

...