[转]Heritrix之旅之CrawlController
来源:互联网 发布:视频反马赛克软件 编辑:程序博客网 时间:2024/05/01 16:33
文章来源http://www.cnblogs.com/MichaelYin/archive/2011/08/25/2153633.html
一转眼暑假就快要结束了,暑假也是在趁着找工作之前花时间折研究了一下Heritrix,这段时间会花点时间把这块学习和心得来做一个总结,一方面对知识的夯实,另一方面也能对园子里面的朋友有所帮助。
Heritrix的一些介绍网上都有,我在这里也就不做介绍了,直接进入正题。
Heritrix抓取任务的核心类就是CrawlController,这个对象将决定一个抓取任务的开始和结束
view sourceprint?
00
//order.xml文件的封装
01
private
transient CrawlOrder order;
02
//
03
private
transient CrawlScope scope;
04
//处理链列表
05
private
transient ProcessorChainList processorChains;
06
//为抓取线程提供uri
07
private
transient Frontier frontier;
08
09
//线程池
10
private
transient ToePool toePool;
11
12
//缓存,保存了当前抓取任务抓取过的Host名称和Server名称
13
private
transient ServerCache serverCache;
14
15
// This gets passed into the initialize method.
16
17
private
transient SettingsHandler settingsHandler;
view sourceprint?
0
上面这个图就是CrawlController和抓取过程中的几个关键的组件的关系图,CrawlController包含了这几个组件并对整个抓取进行管理
CrawlController的初始化是在initialize方法中完成的,根据传入的SettingsHandler得到抓取必须的参数,进行初始化,然后完成其他的一些必须的初始化工作。
二次开发的时候我们也可以自己完成这些过程,但是有几个必须的过程是必须要走的,首先就是需要构造一个XMLSettingsHandler对象,将order.xml信息装入,然后构造一个CrawlController对象,然后将XMLSettingsHandler放入到CrawlController的initialize方法中去,当完成上述工作之后,CrawlController就可以准备开始进行抓取了。
其实上述所说的过程就是Heritrix类中doOneCrawl方法的实现的过程,我们可以直接将order.xml的文件路径放入方法然后进行抓取
view sourceprint?
0
XMLSettingsHandler handler =
new
XMLSettingsHandler(
new
File(
1
crawlOrderFile));
2
handler.initialize();
3
CrawlController controller =
new
CrawlController();
4
controller.initialize(handler);
5
if
(listener !=
null
) {
6
controller.addCrawlStatusListener(listener);
7
}
8
controller.requestCrawlStart();
- [转]Heritrix之旅之CrawlController
- 【转】 深入学习Heritrix---解析CrawlController
- Heritrix之旅之Frontier
- Heritrix之旅之ToeThread
- Heritrix之旅之Processor
- 深入学习Heritrix---解析CrawlController
- 深入学习Heritrix---解析CrawlController
- 深入学习Heritrix---解析CrawlController
- heritrix 以CrawlController(后台)的方式运
- Heritrix源码分析(十二) Heritrix的控制中心(大脑)CrawlController(一)
- Heritrix源码分析(十三) Heritrix的控制中心(大脑)CrawlController(二)
- 【Heritrix基础教程之1】在Eclipse中配置Heritrix
- 【Heritrix基础教程之2】Heritrix基本内容介绍
- 【Heritrix基础教程之3】Heritrix的基本架构
- 【Heritrix基础教程之1】在Eclipse中配置Heritrix
- 【Heritrix基础教程之2】Heritrix基本内容介绍
- 【Heritrix基础教程之3】Heritrix的基本架构
- 扩展和定制Heritrix之Extractor
- 继“减少重复输入,在 VIM 中使用模板”
- hdu1166(简单线段树应用,求区间和)
- QTE configure配置安装问题
- linq 中的group
- 解决ie6 png图片背景问题,留着以后用~
- [转]Heritrix之旅之CrawlController
- J2EE框架
- 南京培训小记
- 在Myeclise中配置heritrix1.14.4
- C语言位运算详解
- centos6下使用synergy共享鼠标
- hdu_1074
- smarty编写新闻管理系统(一)
- oracle10g AWR Report 分析(1)