首页 文章

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

提问于
浏览
0

我是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

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

相关问题