Heritrix采用了模块化的设计,它由一些核心类(core classes)和可插件模块(pluggable modules)构成。
核心类可以配置,但不能被覆盖,插件模块可以被由第三方模块取代。
(一)heritrix的体系结构图:
(二)架构分析
CrawlController(下载控制器)
整个下载过程的总的控制者,整个抓取工作的起点,决定整个抓取任务的开始和结束。从Frontier获取URI,传递给
线程池(ToePool)中的ToeThread处理。
Frointier(边界控制器)
主要确定下一个将被处理的URI,负责访问的均衡处理,避免对某一web服务器造成太大的压力。
它保存着crawl的状态:
(1)发现的URI(URIs have been discovered)
(2)正在被处理的URI(URIs are being processed (fetched))
(3)已经处理的URI(URIs have been processed)
TeoThread(处理线程)
Heritrix是多线程的,每一个URI被一个ToeThread处理。
Processor(处理器)
下图为处理器的整个结构图
许多Processor组成一个处理链(processor chains)中,每一个处理链对URI进行一系列的处理。
(1)Pre-fetch processing chain(预处理链)
主要根据robot协议,DNS以及下载范围控制信息判断当前URI是否应当处理。
(2)Fetch processing chain(抓取处理链)
从远程服务器获取数据
(3) Extractor processing chain(抽取处理链)
从网页中抽取新的URI
(4)Write/index processing chain(写处理链)
负责把数据写入本地磁盘
(5)Post-processing chain(后置处理链)
由CrawlStateUpdater,LinksScoper,FrontierScheduler构成。
主要参考:Heritrix文档
原始地址:
http://blog.csdn.net/lenolong/archive/2008/12/11/3498668.aspx
分享到:
相关推荐
Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。官网下载好像要翻墙,我下下来方便大家使用,这是3.4版本,配合heritrix-3.4.0-SNAPSHOT-dist.zip使用
Heritrix 1.14.4是该工具的一个版本,提供了两个压缩包:`heritrix-1.14.4.zip`和`heritrix-1.14.4-src.zip`。这两个文件分别包含了不同的内容,便于用户根据需求进行使用和开发。 `heritrix-1.14.4.zip` 包含了...
总的来说,Heritrix-1.14.4-src提供了深入了解网络爬虫工作原理的机会,同时也让用户有机会自定义和优化爬虫行为,以满足特定的业务需求。虽然这个版本可能没有最新版的特性,但对于学习和理解爬虫技术来说,仍然是...
在提供的压缩包中,有两个主要文件:"heritrix-1.14.4.zip" 和 "heritrix-1.14.4-src.zip"。前者是Heritrix的编译后的二进制版本,可以直接运行,而后者包含了源代码,对于希望定制或深入理解Heritrix工作原理的...
这个"heritrix-1.14.4"版本是Heritrix的特定发行版,提供了对互联网资源进行系统性抓取的功能,帮助用户构建自己的网络存档。 标题"heritrix-1.14.4"表明这是Heritrix的1.14.4版本,这是一个重要的标识,因为每个...
这个软件项目的标题"heritrix-1.12.1"表明我们正在讨论Heritrix的一个特定版本,即1.12.1版。这个版本可能包含了一些修复、改进或新功能,以提升其性能和适应性。 在描述中提到,Heritrix被誉为Lucene的黄金搭档,...
`config/`目录下存放了各种配置文件,如`default-crawler-beans.xml`,它是Heritrix的基础配置,定义了爬虫的行为和组件;`lib/`目录则包含了所有依赖的第三方库。 2. **heritrix-3.1.0-src.zip**:这个文件是...
Heritrix-1.14.4源代码的提供,对于那些希望深入理解网络爬虫工作原理、想要定制爬虫功能或者进行相关研究的开发者来说,是一个宝贵的学习资源。 Heritrix的设计遵循模块化和可扩展的原则,它将爬虫的功能分解为多...
- `heritrix-3.4.0-SNAPSHOT`目录:这是Heritrix的主目录,包含了所有运行所需的基本文件,如jar包、配置文件、文档等。 - `bin`子目录:存放启动和停止Heritrix的脚本,通常在Unix/Linux环境下使用`start.sh`和`...
heritrix-1.12.1-src.zip与heritrix 配置文档
近期需要使用heritrix-1.14.4,配了半天才配好,这个是控制台执行版本. 注意:解压到相关目录,之后配置系统环境变量"HERITRIX_HOME"到该解压目录(Java环境已经配置好)。 使用控制台命令启动 : heritrix --admin=...
Heritrix的压缩包"heritrix-1.14.2.zip"包含以下组件和文件: 1. **源代码**:包含了Heritrix的Java源代码,用户可以查看和修改这些代码以适应自己的需求。 2. **构建脚本**:如Ant或Maven脚本,用于编译和打包项目...
标题"heritrix-1.14.4 for linux"表明这是Heritrix的Linux兼容版本,版本号为1.14.4。在Linux操作系统上运行Heritrix,用户可以利用Linux系统的稳定性和高效性来处理大量的网络抓取任务。 描述中的"heritrix-1.14.4...
在提供的压缩包文件中,有两个主要的文件:`heritrix-3.1.0-dist.tar.gz`和`heritrix-3.1.0-src.tar.gz`。这两个文件分别包含了Heritrix的二进制发行版和源代码。 1. `heritrix-3.1.0-dist.tar.gz`: 这个文件是...
"heritrix-1.14.4-docs.rar"这个压缩包包含了该版本的文档,帮助用户理解和使用Heritrix。 文档通常包括用户手册、开发者指南、API参考等,这些内容对于熟悉Heritrix的架构、配置和编程接口至关重要。由于文件较大...
这个版本的源码和编译后的二进制文件分别以"heritrix-1.14.4.zip"和"heritrix-1.14.4-src.zip"的名义提供,允许用户进行深入研究、学习或二次开发。 在Heritrix中,爬虫的主要工作流程包括种子管理、URL过滤、内容...
这个名为"Heritrix-User-Manual.rar_heritrix"的压缩包包含了Heritrix用户手册的PDF版本,是学习和操作Heritrix的重要资源。下面将详细介绍Heritrix的基本概念、安装步骤、任务创建以及任务分析。 1. **Heritrix...
在解压后的`heritrix-1.14.0`目录中,通常会包含以下结构: - `src` 目录:存放源代码文件,包括主要的Java类和配置文件。 - `build.xml`:Ant构建文件,用于编译和打包项目。 - `README` 和 `LICENSE` 文件:提供...
在“heritrix-1.12.1.zip”这个压缩包中,用户可以找到Heritrix的1.12.1版本的源代码和其他相关文件,这为学习和自定义网络爬虫提供了宝贵的资源。 Heritrix的核心功能是模拟浏览器行为,遍历互联网上的链接,系统...
"heritrix-1.14.3-src.zip"是一个包含了Heritrix 1.14.3版本源代码的压缩文件,对于那些希望深入理解其工作原理或者想要自定义功能的开发者来说,这是一个宝贵的资源。 Heritrix的核心设计基于模块化架构,允许...