HTmlAgilityPack DocumentNode.SelectNodes返回null

时间:2017-02-05 20:31:39

标签: c# screen-scraping html-agility-pack

我正试图抓一些网站的股票报价。 每个我感兴趣的网页都有一个引用。网页的结构与每个股票报价相同。对于大约10个引号,这很有效,但是对于一个HTmlAgilityPack,DocumentNode.SelectNodes返回null。

显然,这必须是网页上的某些内容造成的,但我无法理解。

这是我在寻找元素表面的代码:

HtmlDocument doc = web.Load(URL].ToString());

 foreach (HtmlNode nody in doc.DocumentNode.SelectNodes("//*[@id='surface']"))
        {
            //Do something!
        }

此网址效果很好: https://www.avanza.se/borshandlade-produkter/etf-torg/om-fonden.html/630586/ishares-msci-brazil-small-cap-etf

此URL抛出NullreferenceException: https://www.avanza.se/borshandlade-produkter/etf-torg/om-fonden.html/454676/global-x-msci-portugal-etf

...即使我在检查网页的源代码时找到了表面元素。

您能否帮我理解为什么在第二个网址中找不到表面元素?

更新:保存从两个不同的URL返回的文档后,我比较它们,我可以看到表面元素不存在于"葡萄牙"中。有一种重定向,我必须调查。

更新2:导致错误的链接使用重定向到另一个页面。这是不可能处理我的代码,但我刚刚更新链接指向重定向页面,问题解决了!

0 个答案:

没有答案