`
liuxinglanyue
  • 浏览: 562823 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)

阅读更多

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      

 

 

分享到:
评论

相关推荐

    heritrix源码

    9. **学习资源**:压缩包中的“Heritrix学习源码和资料”可能包含官方文档、教程、示例代码以及社区讨论等内容,这些资料可以帮助初学者快速上手并深入理解Heritrix的内部机制。 10. **实战应用**:Heritrix不仅...

    Heritrix源码分析

    通过对这些包的分析,我们可以看到Heritrix是一个高度模块化和可定制的爬虫。每个组件都有明确的职责,这使得Heritrix能够适应各种复杂的网络抓取需求。深入理解这些源码,有助于开发者定制自己的爬虫策略,实现特定...

    Heritrix1.14.4(含源码包)

    Heritrix是一款开源的互联网档案爬虫工具,由...在深入了解和实践Heritrix 1.14.4的过程中,你不仅会掌握网络爬虫的基本原理和技术,还能提升Java编程和项目管理能力,为更高级的Web数据挖掘和分析打下坚实的基础。

    Lucene+Heritrix 源码

    **Lucene 和 Heritrix 源码分析** 在IT领域,搜索引擎的开发是一项复杂而重要的任务,它涉及到大量的文本处理、索引构建以及高效的查询算法。Lucene 和 Heritrix 是两个开源工具,分别专注于搜索的核心算法和网页...

    Heritrix 源码和Jar

    在"Heritrix 源码和Jar"这个主题中,我们可以深入探讨以下几个知识点: 1. **Heritrix的架构**: Heritrix采用模块化设计,由多个组件构成,包括URL队列管理器、下载器、解析器、存储模块等。用户可以根据需要定制...

    heritrix3.2源码

    Heritrix 3.2 源码的分析和理解有助于开发者深入掌握爬虫技术,定制自己的爬虫解决方案。 首先,让我们了解一下Heritrix 3.2 的核心特性: 1. **模块化设计**:Heritrix 3.2 采用组件化的架构,使得不同的爬取功能...

    heritrix的学习-源码分析 1-10

    ### Heritrix源码分析知识点概述 #### 一、Heritrix简介 Heritrix是一款开源的网络爬虫工具,由Internet Archive开发并维护。它主要用于网页归档和大规模网络爬取任务。Heritrix的设计理念是高度可配置性和扩展性,...

    heritrix1.14.4源码包

    heritrix1.14.4的源码包,包含heritrix1.14.4.zip和heritrix1.14.4-src.zip。heritrix是一种开源的网络爬虫,用于爬去互联网中的网页。如何配置和使用heritrix爬虫,请移步:...

    heritrix1.14.4源码+项目

    同时,它还能处理HTTP状态码,如重试失败的请求,或根据响应头决定是否保存页面。 5. **内容处理**:Heritrix允许开发者添加自定义处理器,对抓取到的内容进行处理,如提取元数据、过滤广告、转换格式等。这些...

    开发自己的搜索引擎lucene+heritrix(第2版)(ch13-ch15源码)

    综上所述,"开发自己的搜索引擎lucene+heritrix(第2版)"的源码涵盖了从网络数据抓取到全文检索的全过程,适合开发者深入学习和实践搜索引擎技术。通过研究ch13至ch16的源代码,可以更深入地理解这两个工具的交互和...

    heritrix-1.14.4爬虫框架及源码

    源码分析对于理解Heritrix的工作原理至关重要。通过对源码的阅读,我们可以了解其内部架构,包括线程模型、数据流控制和模块间的通信机制。例如,Heritrix采用多线程设计,每个组件如fetcher、parser和archiver都在...

    Heritrix安装详细过程

    本节将详细介绍如何在Eclipse环境中搭建Heritrix,并进行必要的配置,以便能够顺利地启动Heritrix并执行抓取任务。 ##### 2.1 在Eclipse中搭建MyHeritrix工程 1. **新建Java工程** 在Eclipse中新建一个名为`...

    Lucene 2.0+Heritrix源码【2】

    最后,"heritrixProject"很可能包含了Heritrix的配置和源码,用于自定义网络爬取的行为和范围。 总结起来,Lucene和Heritrix是构建高效网络搜索系统的关键组件。Lucene提供强大的全文索引和搜索能力,而Heritrix则...

    网络爬虫Heritrix1.14.4可直接用

    7. **日志和监控**:Heritrix有完善的日志记录系统,可以帮助开发者跟踪爬虫状态,定位问题。同时,它还提供了一些性能指标,如抓取速度、错误率等,方便用户监控爬虫运行情况。 8. **安全性与伦理**:使用Heritrix...

    heritrix爬虫安装部署

    - 修改`heritrix.properties`中的相关配置,如`heritrix.cmdline.admin`。 - 运行Heritrix应用并验证功能。 #### 三、Heritrix工作原理 Heritrix的工作原理基于深度优先搜索算法,其核心流程包括: 1. **爬取任务...

    heritrix1.14.0jar包

    标题中的"heritrix1.14.0jar包"指的是Heritrix的1.14.0版本的Java档案文件(JAR),这是运行或构建Heritrix爬虫项目所必需的库。 Heritrix的工作原理是通过模拟浏览器行为,逐个访问网页并按照预设的策略下载页面。...

    Heritrix源码详解

    从网上找得应该是中文Heritrix源码最详细的说明了。折腾了好久,没有把网页打成chm,只能打个exe用用。

    heritrix 中文API (自己整理) 网络爬虫

    Heritrix是一个强大的开源网络爬虫工具,它允许开发者自定义爬取流程,以适应不同的抓取需求。本文将详细解析Heritrix的中文API,包括预处理链、提取链、抽取链、写链和提交链等核心组件。 1. **预处理链 (Pre-...

Global site tag (gtag.js) - Google Analytics