zoukankan      html  css  js  c++  java
  • Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)(转)

                 本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/649737

          本博客已迁移到本人独立博客: http://www.yun5u.com/

           欢迎加入Heritrix群(QQ):109148319,10447185  , Lucene/Solr群(QQ) :  118972724  

          以前在做Web开发的时候就接触过一些HttpStatus Code,比如404,500.后来接触Heritrix之后才知道HttpStatus Code竟然有如此之多。不一样的HttpStatus Code就代表不一样的Http状态,简单的如成功、失败、重定向等。Heritrix自己也根据自己的需求增加了一些,同时由于Heritrix通过HttpClient去获取网络资源,其中一部分HttpStatus Code也来源于HttpClient,接下来我会逐个介绍。

             有兴趣的朋友可以看下源代码中各个HttpStatus Code的不同应用场合和作用,可以说贯穿了真个抓取,设计得相当灵活。如只想大致了解下,可以参考org.archive.crawler.datamodel.FetchStatusCodes,里面有不同的HttpStatus Code以及英文注释。

            

    序号 Heritrix属性 Heritrix属性值 说明
    1 S_UNATTEMPTED 0 初始状态
    2 S_DNS_SUCCESS 1 DNS获取成功
    3 S_DOMAIN_UNRESOLVABLE -1 DNS获取失败,该状态的URL会继续被抓取
    4 S_CONNECT_FAILED -2 连接HTTP失败,该状态的URL会继续被抓取
    5 S_CONNECT_LOST -3 连接HTTP掉线,该状态的URL会继续被抓取
    6 S_TIMEOUT -4 连接HTTP超时,该状态的URL会继续被抓取
    6 S_RUNTIME_EXCEPTION -5 运行意外,该状态的URL会记录在runtime-errors.log日志中
    7 S_DOMAIN_PREREQUISITE_FAILURE -6 运行先决条件(也就是DNS)失败
    8 S_UNFETCHABLE_URI -7 非法的URL,URL不符合规则。Heritrix也自定义了规则去限制URL
    9 S_TOO_MANY_RETRIES -8 多次尝试都是失败,Heritrix可以让未成功的URL尝试多次
    10 S_DEFERRED -50 该URL准备先获取先决条件URL(也就是DNS)
    11 S_UNQUEUEABLE -60 没有通过调度器(Frontier)
    12 S_ROBOTS_PREREQUISITE_FAILURE -61 获取DNS失败,被爬虫协议(robots.txt)拒绝
    13 S_OTHER_PREREQUISITE_FAILURE -62 获取DNS失败的其他原因
    14 S_PREREQUISITE_UNSCHEDULABLE_FAILURE -63 获取DNS失败,该Host不在范围中(也就是用户定义的Url抓取范围)
    15 S_GETBYNAME_SUCCESS 1001 通过URL获取IP成功
    16 S_SERIOUS_ERROR -3000 严重错误,比如内存溢出
    17 S_DEEMED_CHAFF -4000 完全无用,可忽视的URL
    18 S_TOO_MANY_EMBED_HOPS -4001 超出层数限制,也就是抓取深度,这里是抽取出来的连接
    19 S_TOO_MANY_EMBED_HOPS -4002 超出层数限制,也就是抓取深度,这里是嵌套的连接
    20 S_OUT_OF_SCOPE -5000 URL超出范围
    21 S_BLOCKED_BY_USER -5001 被用户拒绝,heritrix可以配置很多规则(Rule)去过滤一部分Url
    22 S_BLOCKED_BY_CUSTOM_PROCESSOR -5002 在预处理模块被阻止
    23 S_BLOCKED_BY_QUOTA -5003 超过抓取成本,Heritrix可以配置抓取一个URL的成本
    24 S_BLOCKED_BY_RUNTIME_LIMIT -5004 超过抓取时间,Heritrix可以配置抓取一个URL的用时
    25 S_DELETED_BY_USER -6000 被用户删除
    26 S_PROCESSING_THREAD_KILLED 7000 heritrix可以多线程抓取,用户可以删除线程,当前状态就表示运行该URL的线程被删除
    27 S_ROBOTS_PRECLUDED -9998 被爬虫协议(robots.txt)拒绝
    28      
    29      

  • 相关阅读:
    『GoLang』接口
    『GoLang』结构体与方法
    『GoLang』包
    『GoLang』字典Map
    『GoLang』数组与切片
    利用griddata进行二维插值
    HTML 标签的 for 属性
    python之成像库pillow
    Python之模块IO
    StringIO和BytesIO
  • 原文地址:https://www.cnblogs.com/seurain/p/3198361.html
Copyright © 2011-2022 走看看