HtmlAgilityPack - SelectNodes以NullPointer异常间歇性响应

时间:2017-07-08 01:32:10

标签: nullpointerexception html-agility-pack

我是HTMLAgilityPack的新手,但现在逐渐能够在我的程序中成功实施。我所拥有的问题是" SelectNodes"间歇性地返回Nullpointer异常。但它确实有效。我试图强行等待,使用Sleep命令,调试/步骤代码,但没有帮助,有时我通过线但有时我失败在那条线上有错误 "未处理的类型' System.ArgumentNullException'发生在System.Core.dll中 附加信息:值不能为空。"

这个网站我试图从节点加载和读取值... https://www.g2crowd.com/categories/mobile-app-testing

不确定这是否与Cookie /网页页面超时有关...我无法弄明白,我可能忽略了需要为HTMLWeb设置的任何属性()

这是我的代码:

HtmlWeb webGet = new HtmlWeb();
var document = webGet.Load("https://www.g2crowd.com/categories/mobile-app-testing");
//THIS BELOW LINE INTERMITTENTLY FAILS, AT TIMES , IT POPULATES THE ARRAY
 HtmlNode[] symbolnodes = document.DocumentNode.SelectNodes("//h5[@class=\"margin-bottom-4th font-weight-bold ellipsis\"]").ToArray();
foreach (HtmlNode item in symbolnodes)
{
}

我怀疑在cookies上,我试图添加以下代码,但也没有帮助

                    webGet.PreRequest += request =>
                {
                    request.CookieContainer = new System.Net.CookieContainer();
                    return true;
                };

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。问题是每个页面的HTML节点都不同。我不确定这是否与动态HTML概念有关,因此我指定查询的元素返回NULL。我试图逐个加载100个不同的页面,所以某些页面有一些不同的元素,尽管它们都属于同一个网站。