1、Frontier(链接工厂)是Heritrix最核心的部分,有三个核心的方法:next,schedule,finished,其原型及作用如下:
a) 程提供一个链接.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:决定当前抓取范围的一个组件。scope [skəup]n.范围;余地,机会
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:后置处理链