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

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

阅读更多

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

       欢迎加入Heritrix群(QQ):109148319

 

 9.org.archive.crawler.fetcher

序号 说明
1 FetchDNS 获取DNS数据,如IP
2 FetchFTP 获取FTP数据
3 FetchHTTP 获取HTTP数据
4 HeritrixHttpMethodRetryHandler HTTP重试处理器,重新去连接HTTP

 

 

10.org.archive.crawler.framework
 序号  类  说明
 1  AbstractTracker  统计器,统计抓取情况,父类,具体统计由子类实现
 2  AlertManager  UI界面消息管理器,给用户显示爬虫相关消息,如一些异常情况
 3  Checkpointer  备份器,定时备份Heritrix相关数据,如日志、BDB文件等
 4  CrawlController  控制器,控制整个爬虫的启动、暂停、停止等,Heritrix的核心类
 5  CrawlScope  URL范围管理器,如种子、哪些URL符合抓取哪些URL不符合抓取
 6  Filter  过滤器,决定哪些URL可以抓取哪些不可以,父类,具体由子类实现
 7  Frontier  调度器,对进来的URL进行调度,使其在接来下可以抓取
 8  Processor  处理器,一个URL由不同的处理器(组件)合作完成,这个为处理器父类,不同的组件有不同的实现
 9  ProcessorChain  处理器链,包含相同类型的处理器,如抽取URL的时候有从Html抽取的ExtractorHTML,从JavaScript抽取的ExtractorJs
 10  ProcessorChainList  处理器链集合,包含多个处理器链,每个URL都会有这样一个处理器集合,使得先从该集合中获取处理器链,然后再从处理器链中获取每个处理器,最后让每个处理器都做他们的处理,完成整个抓取
 11  Scoper  范围管理器,验证一个URL是否在用户配置(从order.xml中获取)的范围
 12  StatisticsTracking  跟踪统计器,主要统计抓取情况,如宽带占用、抓取多少URL、抓取速度等,贯穿整个爬虫的运行
 13  ToePool  线程池,用于管理爬虫线程
 14  ToeThread  爬虫线程,代表着一个抓取,Heritrix的核心类,贯穿整个爬虫的运行,接下来会重点分析
 15  WriterPoolProcessor  写处理器管理池,用于管理多个写处理器,可以在分布式中使用

 

 

11.org.archive.crawler.frontier
序号 说明
1 AbstractFrontier 调度器基本实现类,Heritrix最复杂的地方之一,接下来会重点分析
2 BdbFrontier BDB调度器,用BDB数据库去管理所有的URL,如保存哪些待抓取的URL,哪些已经抓取的URL,Heritrix最复杂的地方之一,接下来会重点分析
3 BdbMultipleWorkQueues 管理着所有的队列,所有的队列数据保存在BDB数据库中.Heritrix最复杂的地方之一,接下来会重点分析
4 BdbWorkQueue 抓取队列由BDB存储管理,相同classkey的URL为一个队列.classkey由用户配置决定,Heritrix默认是相同host的URL就为一个队列.Heritrix最复杂的地方之一,接下来会重点分析
5 FrontierJournal 调度器记录管理,记录调度器的每一次运行情况,如插入URL,插入失败URL等
6 HostnameQueueAssignmentPolicy URL ClassKey获得策略,Heritrix的默认策略,通过域名来获得URL的class key。然后相同的classkey存放相同的队列
7 IPQueueAssignmentPolicy URL ClassKey获得策略,这个策略是通过IP来获得URL的class key
8 QueueAssignmentPolicy URL ClassKey获得策略,该类是抽象类,不同的策略由不同的子类实现,如根据域名、IP等,用户可以自己扩展
9 RecoveryJournal 管理着/logs/recover.gz,该文件记录所有的URL抓取情况,如抓取成功、失败都有不同的对应格式。该文件主要用于下次Heritrix恢复,如Heritrix异常中断重新启动Heritrix的话又会重新抓取,而如果基于该文件启动的话则会避免这个问题,同时对于上次异常中断而来不及抓取的URL都会优先抓取
10 RecyclingSerialBinding 给每个线程分配的数据输出流管理器,里面用ThreadLocal来管理每个线程的数据输出流,如此可以节省大量重复序列化
11 WorkQueue 代表着一个队列,抽象类,会有不同的子类实现,如由BDB存储数据的BdbWorkQueue,Heritrix最复杂的地方之一,接下来会重点分析
12 WorkQueueFrontier 队列调度器,管理着所有的队列,里面用不同的类型管理着不同的队列,如不在活动状态队列:Queue<String> inactiveQueues.可以说是Heritrix中最为复杂最为关键的类,接下来会重重点分析

 

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

5
0
分享到:
评论

相关推荐

    heritrix源码

    这个“Heritrix源码”压缩包可能包含了Heritrix项目的完整源代码,以及相关的学习资料,对于深入理解Heritrix的工作原理、定制爬虫功能以及进行二次开发非常有帮助。以下将详细介绍Heritrix的关键知识点。 1. **...

    Heritrix源码分析11-15.pdf

    ### Heritrix源码分析(十一):Heritrix中的URL——CandidateURI和CrawlURI #### 一、概述 Heritrix是一款开源的网络爬虫工具,它主要用于归档和备份网页数据。Heritrix的设计非常灵活且可扩展性强,能够支持多种...

    Heritrix源码分析

    11. `org.archive.crawler.framework`:Heritrix的框架包,定义了核心类如CrawlController(爬虫控制器)和Frontier(调度器),是整个系统架构的基础。 12. `org.archive.crawler.framework.exceptions`:框架异常...

    Lucene+Heritrix 源码

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

    heritrix3.2源码

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

    Heritrix1.14.4(含源码包)

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

    Heritrix 源码和Jar

    在"Heritrix 源码和Jar"这个主题中,我们可以深入探讨以下几个知识点: 1. **Heritrix的架构**: 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 1.14.4版本的源代码和相关项目文件,对于学习和理解Web爬虫的工作原理,以及进行自定义开发是非常有价值的。 Heritrix的核心功能是通过模拟浏览器行为来...

    Heritrix源码详解

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

    Heritrix-1.14.4源代码

    Heritrix是一款开源的网络爬虫工具,由Internet Archive开发并维护,主要用于大规模网页抓取。Heritrix-1.14.4源代码的提供,对于那些希望深入理解网络爬虫工作原理、想要定制爬虫功能或者进行相关研究的开发者来说...

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

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

    heritrix-1.14.4爬虫框架及源码

    这个版本的源码和编译后的二进制文件分别以"heritrix-1.14.4.zip"和"heritrix-1.14.4-src.zip"的名义提供,允许用户进行深入研究、学习或二次开发。 在Heritrix中,爬虫的主要工作流程包括种子管理、URL过滤、内容...

    Lucene 2.0+Heritrix源码【2】

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

    Heritrix安装详细过程

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

    heritrix-3.2.0 源码

    1. **事件驱动架构**:Heritrix 使用了Java的Observer模式,通过发布/订阅事件来协调各个组件之间的通信。深入源码可以了解如何构建这种异步处理系统。 2. **模块化设计**:理解Heritrix如何通过模块化设计实现组件...

    heritrix 3.1

    同时,Heritrix支持通过XML配置文件(如`bean.xml`)来定义和连接各个模块,实现定制化的爬取流程。 在类之间,Heritrix使用依赖注入(Dependency Injection)模式进行通信。例如,`Crawler`实例化时会注入`Seeder`...

    heritrix系统使用.ppt

    用户需要下载Heritrix源码,然后按照提供的指南进行编译和安装。配置主要包括设定爬取范围,这可以通过修改`Modules`、`Submodules`和`Settings`来完成。例如,你可以使用正则表达式来限定抓取的URL模式,确保只抓取...

    heritrix爬虫安装部署

    #### 二、Heritrix下载、安装与配置 ##### 2.1 下载 - **下载地址**: 通常可以从Heritrix的官方网站或GitHub仓库获取最新版本。 - **版本选择**: 根据给定的信息,选择了版本1.14.4进行安装。 ##### 2.2 安装 - **...

Global site tag (gtag.js) - Google Analytics