我正试图抓一些网站的股票报价。 每个我感兴趣的网页都有一个引用。网页的结构与每个股票报价相同。对于大约10个引号,这很有效,但是对于一个HTmlAgilityPack,DocumentNode.SelectNodes返回null。
显然,这必须是网页上的某些内容造成的,但我无法理解。
这是我在寻找元素表面的代码:
HtmlDocument doc = web.Load(URL].ToString());
foreach (HtmlNode nody in doc.DocumentNode.SelectNodes("//*[@id='surface']"))
{
//Do something!
}
此URL抛出NullreferenceException: https://www.avanza.se/borshandlade-produkter/etf-torg/om-fonden.html/454676/global-x-msci-portugal-etf
...即使我在检查网页的源代码时找到了表面元素。
您能否帮我理解为什么在第二个网址中找不到表面元素?
更新:保存从两个不同的URL返回的文档后,我比较它们,我可以看到表面元素不存在于"葡萄牙"中。有一种重定向,我必须调查。
更新2:导致错误的链接使用重定向到另一个页面。这是不可能处理我的代码,但我刚刚更新链接指向重定向页面,问题解决了!