http://guoyunsky.iteye.com/blog/649737
以前在做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 |
|
|
|
分享到:
相关推荐
9. **学习资源**:压缩包中的“Heritrix学习源码和资料”可能包含官方文档、教程、示例代码以及社区讨论等内容,这些资料可以帮助初学者快速上手并深入理解Heritrix的内部机制。 10. **实战应用**:Heritrix不仅...
通过对这些包的分析,我们可以看到Heritrix是一个高度模块化和可定制的爬虫。每个组件都有明确的职责,这使得Heritrix能够适应各种复杂的网络抓取需求。深入理解这些源码,有助于开发者定制自己的爬虫策略,实现特定...
Heritrix是一款开源的互联网档案爬虫工具,由...在深入了解和实践Heritrix 1.14.4的过程中,你不仅会掌握网络爬虫的基本原理和技术,还能提升Java编程和项目管理能力,为更高级的Web数据挖掘和分析打下坚实的基础。
**Lucene 和 Heritrix 源码分析** 在IT领域,搜索引擎的开发是一项复杂而重要的任务,它涉及到大量的文本处理、索引构建以及高效的查询算法。Lucene 和 Heritrix 是两个开源工具,分别专注于搜索的核心算法和网页...
在"Heritrix 源码和Jar"这个主题中,我们可以深入探讨以下几个知识点: 1. **Heritrix的架构**: Heritrix采用模块化设计,由多个组件构成,包括URL队列管理器、下载器、解析器、存储模块等。用户可以根据需要定制...
Heritrix 3.2 源码的分析和理解有助于开发者深入掌握爬虫技术,定制自己的爬虫解决方案。 首先,让我们了解一下Heritrix 3.2 的核心特性: 1. **模块化设计**:Heritrix 3.2 采用组件化的架构,使得不同的爬取功能...
### Heritrix源码分析知识点概述 #### 一、Heritrix简介 Heritrix是一款开源的网络爬虫工具,由Internet Archive开发并维护。它主要用于网页归档和大规模网络爬取任务。Heritrix的设计理念是高度可配置性和扩展性,...
heritrix1.14.4的源码包,包含heritrix1.14.4.zip和heritrix1.14.4-src.zip。heritrix是一种开源的网络爬虫,用于爬去互联网中的网页。如何配置和使用heritrix爬虫,请移步:...
同时,它还能处理HTTP状态码,如重试失败的请求,或根据响应头决定是否保存页面。 5. **内容处理**:Heritrix允许开发者添加自定义处理器,对抓取到的内容进行处理,如提取元数据、过滤广告、转换格式等。这些...
综上所述,"开发自己的搜索引擎lucene+heritrix(第2版)"的源码涵盖了从网络数据抓取到全文检索的全过程,适合开发者深入学习和实践搜索引擎技术。通过研究ch13至ch16的源代码,可以更深入地理解这两个工具的交互和...
源码分析对于理解Heritrix的工作原理至关重要。通过对源码的阅读,我们可以了解其内部架构,包括线程模型、数据流控制和模块间的通信机制。例如,Heritrix采用多线程设计,每个组件如fetcher、parser和archiver都在...
最后,"heritrixProject"很可能包含了Heritrix的配置和源码,用于自定义网络爬取的行为和范围。 总结起来,Lucene和Heritrix是构建高效网络搜索系统的关键组件。Lucene提供强大的全文索引和搜索能力,而Heritrix则...
7. **日志和监控**:Heritrix有完善的日志记录系统,可以帮助开发者跟踪爬虫状态,定位问题。同时,它还提供了一些性能指标,如抓取速度、错误率等,方便用户监控爬虫运行情况。 8. **安全性与伦理**:使用Heritrix...
- 修改`heritrix.properties`中的相关配置,如`heritrix.cmdline.admin`。 - 运行Heritrix应用并验证功能。 #### 三、Heritrix工作原理 Heritrix的工作原理基于深度优先搜索算法,其核心流程包括: 1. **爬取任务...
标题中的"heritrix1.14.0jar包"指的是Heritrix的1.14.0版本的Java档案文件(JAR),这是运行或构建Heritrix爬虫项目所必需的库。 Heritrix的工作原理是通过模拟浏览器行为,逐个访问网页并按照预设的策略下载页面。...
从网上找得应该是中文Heritrix源码最详细的说明了。折腾了好久,没有把网页打成chm,只能打个exe用用。
Heritrix是一个强大的开源网络爬虫工具,它允许开发者自定义爬取流程,以适应不同的抓取需求。本文将详细解析Heritrix的中文API,包括预处理链、提取链、抽取链、写链和提交链等核心组件。 1. **预处理链 (Pre-...