当前位置:  开发笔记 > 编程语言 > 正文

如何使用HtmlAgilityPack检查它是否是404错误页面(页面不存在)

如何解决《如何使用HtmlAgilityPack检查它是否是404错误页面(页面不存在)》经验,为你挑选了1个好方法。



1> jessehouwing..:

您需要PostRequestHandlerHtmlWeb实例上注册一个事件,它将在每个下载的文档之后引发,您将可以访问该HttpWebResponse对象.它有一个属性StatusCode.

 HtmlWeb web = new HtmlWeb();
 HttpStatusCode statusCode = HttpStatusCode.OK;
 web.PostRequestHandler += (request, response) =>
 {
     if (response != null)
     {
         statusCode = response.StatusCode;
     }
 }

 var doc = web.Load(completeUrl)
 if (statusCode == HttpStatusCode.OK)
 {
     // received a read document
 }

看一下GutHub上HtmlAgilityPack的代码,它更简单,HtmlWeb有一个属性StatusCode设置值:

var web = new HtmlWeb();
var document = web.Load(completeurl);

if (web.StatusCode == HttpStatusCode.OK)
{
    var urls = document.DocumentNode.Descendants("img")
          .Select(e => e.GetAttributeValue("src", null))
          .Where(s => !String.IsNullOrEmpty(s)).ToList();
}

更新

AgilityPack API已有更新.诀窍仍然是一样的:

var htmlWeb = new HtmlWeb();
var lastStatusCode = HttpStatusCode.OK;

htmlWeb.PostResponse = (request, response) =>
{
    if (response != null)
    {
        lastStatusCode = response.StatusCode;
    }
};

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有