`
deepfuture
  • 浏览: 4375487 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:79862
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:69456
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:102784
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:283995
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:14910
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:66977
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:31807
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:45791
社区版块
存档分类
最新评论

Heritrix架构剖析

阅读更多

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构成。

分享到:
评论

相关推荐

    网络爬虫Heritrix1.14.4可直接用

    2. **Heritrix架构**:Heritrix采用模块化设计,包括种子管理器、URI调度器、爬取策略、处理器链、存储模块等。每个模块都有其特定功能,如种子管理器负责管理起始抓取URL,调度器负责控制爬取速率和优先级。 3. **...

    heritrix正确完整的配置heritrix正确完整的配置

    这可能涉及Java编程,需对Heritrix的架构有深入理解。 9. **异常处理与恢复**: 配置如何处理网络错误、服务器拒绝等问题,以及在中断后如何恢复爬取。 10. **性能优化**: 考虑并发数、重试策略、DNS缓存等,以提高...

    heritrix爬虫安装部署

    Heritrix的设计初衷是为了满足大规模网页归档的需求,但因其灵活的架构和丰富的API,也被广泛应用于数据挖掘、搜索引擎优化等领域。 #### 二、Heritrix下载、安装与配置 ##### 2.1 下载 - **下载地址**: 通常可以从...

    heritrix-3.1.0 最新jar包

    - **模块化架构**:Heritrix的组件可以通过配置文件进行添加、删除或修改,如爬行策略、解析器、存儲策略等,提供了极大的灵活性。 - **爬行策略**:Heritrix支持多种爬行策略,如深度优先、广度优先,甚至可以...

    heritrix源码

    2. **模块化架构**:Heritrix的核心组件包括启动器、管道(Pipeline)、处理器(Processor)和发射器(Emitter)。启动器负责启动爬虫,管道连接各种处理器,处理器执行实际的抓取任务,如解析HTML、处理链接等,...

    heritrix抓取的操作和扩展

    Heritrix是一个强大的开源网络爬虫工具,专为...然而,由于其丰富的配置选项和复杂的架构,对于新手来说,学习和掌握Heritrix可能需要一定的时间。因此,深入理解Heritrix的工作原理和配置机制是充分发挥其潜力的关键。

    heritrix 3.1

    文件"heritrix 3.1.dia"可能是用Dia工具绘制的Heritrix 3.1的类图或架构图,它可以帮助我们直观地理解各组件间的相互关系。而"heritrix 3.1.png"可能是一些关键类的截图或者配置示例,用于辅助理解。 总的来说,...

    Heritrix源码分析

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

    Heritrix-3.1.0(linux版)

    - **模块化架构**:Heritrix的设计基于模块化,允许用户添加或替换各种组件,如爬取管道中的处理器、解析器和存储模块。 - **爬取策略**:用户可以根据需求定制爬取策略,例如按照时间戳、URL结构或内容类型进行选择...

    heritrix-1.14.4爬虫框架及源码

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

    heritrix-3.2.0

    - **模块化设计**:Heritrix 的架构基于模块化,各个组件可以独立工作,易于扩展和维护。 - **插件支持**:通过编写插件,用户可以添加新的处理步骤,如爬取策略、数据解析和存储方法。 - **日志记录**:详细的...

    Heritrix3-可扩展web级别的Java爬虫项目

    1. **模块化架构**:Heritrix3采用组件化的架构,将爬虫的各个功能拆分为独立的模块,如爬取策略、解析器、存储器等。这种设计使得开发者可以轻松替换或扩展任何模块,以适应不同的抓取需求。 2. **线程模型**:...

    heritrix-1.12.1

    这种灵活性使得Heritrix能够适应各种复杂和特定的爬网任务,无论是学术研究、市场分析还是数据挖掘。 关于标签,"crawler"代表了Heritrix的核心功能,即网络爬虫,它能够自动化地遍历互联网并下载页面。"heritrix...

    heritrix3.2

    在实际应用中,Heritrix 3.2 可用于多种场景,如构建互联网档案库、学术研究、市场分析、竞争情报收集等。对于IT专业人士来说,掌握Heritrix 的使用和配置能极大地提升其在网络数据获取和处理方面的能力。通过深入...

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

    1. **基础理解**:首先了解Heritrix的基本概念和架构设计。 2. **核心包分析**:深入研究上述提到的核心包,理解其内部工作原理和交互机制。 3. **实践应用**:基于Heritrix构建简单的爬虫任务,逐步增加复杂度。 4....

    heritrix3.2源码

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

    heritrix

    Heritrix提供了丰富的配置选项和模块化架构,使得用户能够定制自己的抓取流程。 在Heritrix的使用过程中,首先需要从官方指定的下载页面获取最新版本,目前是1.12.1。下载完成后,解压缩到本地目录,通常会包含`lib...

    Lucene+Heritrix(搜索引擎开发)

    值得注意的是,在使用Lucene和Heritrix开发搜索引擎时,我们还需要考虑系统架构、数据处理能力、存储解决方案以及系统的可扩展性与维护性。在设计之初,就要规划如何高效地处理和存储索引数据,以及如何应对搜索引擎...

    Lucene+Heritrix 源码

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

Global site tag (gtag.js) - Google Analytics