htmlagilityPack:网页未返回完整的html

时间:2019-05-23 12:55:49

标签: c# html-agility-pack

使用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 个答案:

答案 0 :(得分:1)

在该页面上的chrome中检查“网络”标签。 https://www.verkkokauppa.com/resp-api/product?pids=467610有ajax请求。因此,产品是使用javascript加载的。

您不能仅在此处触发javascript。 HtmlAgilityPack是html解析器。如果要使用动态内容,则需要浏览器引擎。我认为您应该检查Seleniumphantomjs