heritrix的模块结构

来源:互联网 发布:北洋军阀 书籍推荐知乎 编辑:程序博客网 时间:2024/05/22 11:39

1、Frontier(链接工厂)是Heritrix最核心的部分,有三个核心的方法:next,schedule,finished,其原型及作用如下:

a) next提供一个链接.Heritrix的所有处理线程(ToeThread)都是通过调用该方法获取链接的

b) schedule(CandidateURI caURI):调度待处理的链接

c) finished(CrawlURI cURI):完成一个已处理的链接

 

2 Processor(解析处理器),包含三个重要的类:

a) Processor(处理器类):代表一个处理器

b) ProcessorChain(处理器类):实现一个队列,由许多处理器链接成的处理器链

c) ProcessorChainList(处理器链列表):保存一次抓取任务的所有处理器链

 

3、采用线程池(ToeThread)设计,每个线程将调用所有的处理器来处理链接

 

4、中央控制器(CrawlController)是一次抓取任务的核心组件,决定每一次抓取任务的开始与结束,包含如下类型的数据成员:

a) CrawlOrder:它保存了对该次抓取任务中order.xml的属性配置。

b) CrawlScope:决定当前抓取范围的一个组件。

c) ProcessorChainList:表示处理器链。

d) Frontier:它是一个URL的处理器,决定下一个要被处理的URL是什么。

e) ToePool:它表示一个线程池,管理了所有该抓取任务所创建的子线程。

f) ServerCache:它表示一个缓冲池,保存了所有在当前任务中,抓取过的Host名称和Server名称。

 

5、处理链总体构成:

1) pre-fetch Chain :预处理链

2) fetch chain:抓取处理链 从服务器上获取网站数据

3) extractor Chain:从网页中抽取新的uri(词法分析)

4) write Chain:将数据写入本地磁盘

5) Post-processing Chain:后置处理链

 

原创粉丝点击