Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)
程序员文章站
2022-03-02 11:38:19
...
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/649737
欢迎加入Heritrix群(QQ):109148319
以前在做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 |
更多技术文章、感悟、分享、勾搭,请用微信扫描: