我在Web Crawler应用程序中使用HtmlAgilityPack过去2个月没有加载网页的问题。
现在,当我尝试加载此特定网页时,文档OuterHtml为空,因此此测试失败
var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", pageHtml);
我可以从网站上加载其他页面而没有任何问题,例如设置
url = "http://www.prettygreen.com/news/";
过去我曾经遇到编码问题,我玩过htmlWeb.OverrideEncoding和htmlWeb.AutoDetectEncoding而没有运气。我不知道这个网页有什么问题。
答案 0 :(得分:10)
这个网站似乎要求启用Cookie。因此,为Web请求创建cookie容器应该可以解决问题:
var url = "http://www.prettygreen.com/";
var htmlWeb = new HtmlWeb();
htmlWeb.PreRequest += request =>
{
request.CookieContainer = new System.Net.CookieContainer();
return true;
};
var htmlDoc = htmlWeb.Load(url);
var outerHtml = htmlDoc.DocumentNode.OuterHtml;
Assert.AreNotEqual("", outerHtml);