`
guoyunsky
  • 浏览: 845028 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:204461
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

Heritrix源码分析(四) 各个类说明(一)

阅读更多

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

    欢迎加入Heritrix群(QQ):109148319

 

 

      Heritrix的类的确很繁琐,往往继承了一层又一层,最多的继承好像有7层。下面就一个包一个包的说明每个类的作用,由于里面Heritrix组件分明,很多组件没用到的同时该组件的类我也没怎么接触,所以这里会忽略一部分,如果有知道的请补充,谢谢!如果对包还有不熟悉的,可以查看我前面的文章,这里也给出链接http://guoyunsky.iteye.com/admin/blogs/613249

 

 1.org.archive.crawler
序号 说明
1 CommandLineParser Heritrix也可以通过CMD命令进行操作,该类用于解析CMD命令
2 Heritrix Heritrix主类,可以通过该类启动Heritrix
3 SimpleHttpServer Heritrix Web服务器,可以通过Web管理Heritrix
4 WebappLifecycle 封装Servlet,如此才可以通过Web启动Heritrix,里面装载Heritrix对象

 

2.org.archive.crawler.admin
序号  类  说明
1  CrawlJob  Heritrix的核心类,代表着一个抓取任务,order.xml中大部分属性都围绕其配置,以后会着重说明
2  CrawlJobErrorHandler  维护者一个抓取任务(CrawlJob)的错误日志,UI中显示的JOB错误就来自于它
3  CrawlJobHandler  抓取任务处理器,Heritrix可以有多个抓取任务,都由它进行管理
4  InvalidJobFileException  抓取任务文件异常,意义不大
5  SeedRecord  记录种子的处理记录,如该种子重定向到哪个URL,在seeds.txt里面会有说明,该重定向值就来源于它
6  StatisticsSummary  统计摘要类,所用不多
7  StatisticsTracker  Heritrix核心类,统计跟踪器,贯穿整个Heritrix的运行,如统计抓取了多少URL,以后会着重说明

 

 

3.org.archive.crawler.admin.ui
序号 说明
1 CookieUtils Cookie工具类,主要用于访问Cookie
2 JobConfigureUtils CrawlJob配置管理工具类,当你通过Web Ui去配置一个CrawlJob时就会用到这个类
3 RootFilter 不熟

 

 

4.org.archive.crawler.datamodel
序号 说明
1 CandidateURI Heritrix的核心类,代表着一个URL,贯穿整个抓取,与CrawlURI的区别是它还没有通过调度器(Frontier),只有通过了调度器的URL才可能去获取网页内容区下载等,以后会着重说明
2 CandidateURITest CandidateURI的测试类,比如可以用它获知如何创建CanditeURI
3 Checkpoint Heritrix会定期备份它的数据,如日志、正在获取的URL内容,都是在底层定时运行,当Heritrix异常中断可以通过它来恢复.也类似于各个数据库的Ckeckpoint
4 CoreAttributeConstants 装载着Heritrix的基本属性变量名,一般是对应order.xml中的标签名
5 CrawlHost Heiritrix的核心类,代表着一个Host,里面主要包含域名、IP。由于Heritrix可以控制抓取速度,如对一个Host的抓取速度,这个类就代表着那个Host.以后会着重说明
6 CrawlOrder Heritrix的核心类,基本上对应着order.xml的各个属性值,除了各个组件的详细属性,以后会着重说明
7 CrawlServer Heritrix的核心类,也对应着一个Host,里面装载着一个Host的各种Heritrix数据,如统计信息、爬虫协议
8 CrawlSubstats 抓取统计类,主要统计抓取Url的个数、成功的个数、下载的字节数等等
9 CrawlURI CandidateURI的子类,主要比CaidiateURI多了网页内容指纹、所属队列、组件处理器等
10  CredentialStore  凭证存储类,负责存储各种凭证,如登陆
11  FetchStatusCodes  抓取状态,有不同的属性代表不同的抓取状态,如DNS获取成功:S_DNS_SUCCESS
12  RobotsHonoringPolicy  爬虫协议,代表着不同的抓取策略
13  Robotstxt  爬虫协议,用于解析robots.txt
14  ServerCache  服务器缓存,主要缓存CrawlHost和CrawlServer
15 UriUniqFilter 接口,用于过滤已经抓取过的URL

 

 

5.org.archive.crawler.datamodel.credential

序号 说明
1 Credential 凭证类,代表着一个凭证,从order.xml配置文件中获取数据
2 CredentialAvatar 代表着一个具体的凭证
3 HtmlFormCredential Credential的子类,代表着提交HTML FORM表单时所需要的凭证
4 Rfc2617Credential Credential的子类,代表着RFC2617 HTTP 认证凭证

 

 

6.org.archive.crawler.deciderules
序号 说明
1 AcceptDecideRule URL规则,表示接受
2 ConfiguredDecideRule URL规则,通过order.xml文件中的配置来决定是否拒绝(REJECT)或接受(ACCEPT)
3 DecideRule URL规则的父类,审核一个URL是否接受(ACCEPT)、拒绝(REJECT)或放弃(PASS),通过decisionFor(Object object)方法,该方法由其子类实现
4  DecidingScope  验证一个URL是否在范围来决定是否接受、拒绝或放弃
5  MatchesRegExpDecideRule  通过配置的正则表达式来决定URL是否可接受、拒绝或放弃
6  NotMatchesRegExpDecideRule  MatchesRegExpDecideRule的子类,如果URL不匹配该正则则接受
7  PathologicalPathDecideRule  如果URL中相同目录名超过配置文件中的个数,则拒绝,如http://www.xxx.com/a/a/a/a/a其中a的个数超过一定限制则拒绝
8  PrerequisiteAcceptDecideRule  如果URL中有先决条件URL则接受,也就是该CandidateURI里的pathFromSeed属性里含有P,表示运行该URL之前有先要运行的URL
9  RejectDecideRule  URL规则,表示拒绝
10  TooManyHopsDecideRule  如果超过配置文件中的约点数(max-hops),则拒绝

 

 

7.org.archive.crawler.event
序号 说明
1 CrawlStatusListener 爬虫监听器,如监听爬虫是否在运行,是否暂停等
2 CrawlURIDispositionListener URL监听器,如监听URL是否失败,是要要重新抓取等

 

 

8.org.archive.crawler.extractor
序号 说明
1 Extractor 所有抽取类的父类,用于从一个URL中抽取出新的URL
2 ExtractorCSS 从CSS中抽取出新的URL
3 ExtractorDOC 从DOC中抽取出新的URL
4 ExtractorHTML 从HTML中抽取出新的URL,Heritrix核心类
5 ExtractorHTTP 从HTTP中抽取出新的URL
6 ExtractorJS 从Javascript中抽取出新的URL
7 ExtractorPDF 从PDF中抽取出新的URL
8 ExtractorSWF 从SWF中抽取出新的URL
9 ExtractorXML 从XML中抽取出新的URL
10 HTTPContentDigest 网页内容文摘,实际上是通过MD5或SHA1算法将网页内容指纹化
11 Link 链接,代表抽取出来的URL

 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

8
0
分享到:
评论
2 楼 buyiburao 2011-03-30  
还有,为什么CrawlURI要对网页内容进行指纹化,是为了区分么?
1 楼 buyiburao 2011-03-30  
楼主,我发现heritrix所请求的页面都是明文的,而我们在用浏览器正常访问的时候都用的是gzip传输模式,我发现在heritrix里并没有对gzip解压的步骤,所以我觉得,heritrix解析内容的前提就是明文传输。楼主,我说的对不对

相关推荐

    heritrix源码

    Heritrix是互联网档案(Internet Archive)开发的一款开源网络爬虫工具,用于系统地抓取、存储和归档网页。这个“Heritrix源码”压缩包可能包含了Heritrix项目的完整源代码,以及相关的学习资料,对于深入理解...

    Heritrix源码分析

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

    Lucene+Heritrix 源码

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

    Heritrix1.14.4(含源码包)

    Heritrix 1.14.4是该软件的一个较早版本,包含了完整的源码,因此用户可以对其进行深度定制和调试。 在开始使用Heritrix 1.14.4之前,你需要了解以下几个核心知识点: 1. **爬虫基础**:Heritrix是一个Web爬虫,其...

    heritrix3.2源码

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

    Heritrix 源码和Jar

    Heritrix是一款开源的网络爬虫工具,由Internet Archive开发并维护,用于抓取和保存互联网上的网页。这款工具的设计目标是提供一个可扩展、可配置的平台,以适应各种爬网需求。Heritrix的核心功能包括URL调度、网页...

    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源码+项目

    这个“Heritrix1.14.4源码+项目”压缩包提供了一个深入研究和学习Heritrix的好机会。你可以通过阅读源代码理解其内部机制,也可以通过修改配置和编写处理器来实现自己的Web爬虫项目。无论你是想进行学术研究,还是...

    Heritrix源码详解

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

    Lucene 2.0+Heritrix源码【2】

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

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

    《开发自己的搜索引擎lucene+heritrix(第2版)》是一部深入探讨搜索引擎开发的专业书籍,主要聚焦于开源项目Lucene和Heritrix的使用。Lucene是Java编写的一个全文检索库,而Heritrix则是一个互联网档案爬虫,两者...

    heritrix-1.14.4爬虫框架及源码

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

    heritrix-3.2.0 源码

    Heritrix 3.2.0 是一个开源的网络爬虫工具,专为大规模、可扩展的互联网数据抓取设计。这款爬虫软件由互联网档案馆(Internet Archive)开发,旨在帮助用户系统地抓取、存储和归档互联网上的网页。源码的提供对于...

    heritrix系统使用.ppt

    Heritrix是一个强大的开源网络爬虫工具,用于批量抓取互联网上的网页。它提供了一种高效、可配置的方式来收集和处理网页数据。本篇将详细解释Heritrix系统的使用、核心概念、工作原理以及关键组件。 首先,Heritrix...

    heritrix 3.1

    Heritrix 3.1是互联网档案馆开发的一款开源网络爬虫工具,专门用于抓取和保存网页。这款强大的爬虫软件广泛应用于学术研究、数据分析、网站备份等多个领域。了解Heritrix 3.1的默认配置以及类之间的关系对于有效使用...

    heritrix1.14.0jar包

    Heritrix是一款强大的开源网络爬虫工具,由互联网档案馆(Internet Archive)开发,用于抓取和保存网页数据。在IT行业中,爬虫是获取...无论是用于学术研究、数据分析还是网站维护,Heritrix都是一个值得信赖的工具。

Global site tag (gtag.js) - Google Analytics