Heritrix源码分析.docx
- 文档编号:4222637
- 上传时间:2023-05-06
- 格式:DOCX
- 页数:89
- 大小:126KB
Heritrix源码分析.docx
《Heritrix源码分析.docx》由会员分享,可在线阅读,更多相关《Heritrix源码分析.docx(89页珍藏版)》请在冰点文库上搜索。
Heritrix源码分析
Heritrix源码分析
(一)包介绍
分类:
搜索引擎2012-06-1016:
2541人阅读评论(0)收藏举报
之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。
想了很久,还是先从Heritrix的包开始说起,然后再说类,最后讲下如何加工Heritrix,也就是将其打造成自己想要的爬虫,这里补充下,我用的版本是1.14.3.
同时欢迎加入我建的Heritrix爬虫群一起讨论学习:
10447185
序号
包名
说明
1
mons.httpclient
封装了apache的httpclient用于Fetch网页内容
2
mons.httpclient.cookie
封装了apache的httpclient用于Fetch网页内容,这里主要处理Cookie
3
mons.pool.impl
封装了apache的httpclient用于Fetch网页内容,还待研究
4
org.archive.crawler
Heritrix程序运行的入口包,如Heritrix运行可以直接抓取
5
org.archive.crawler.admin
Heritrix的管理包,比如CrawlJob表示一个抓取任务job,CrawlJobHandler管理JOB,以及日志统计等
6
org.archive.crawler.admin.ui
服务于UI管理界面,如Job参数的设置
7
org.archive.crawler.datamodel
Heritrix的数据模型包,如在Heritrix中代表一个URL的CandidateURI
8
org.archive.crawler.datamodel.credential
管理Heritrix数据模型中的凭证,如抓取某些网站需要用户名和密码
9
org.archive.crawler.deciderules
Heritrix的规则包,如决定哪些URL可以抓取可以调度
10
org.archive.crawler.deciderules.recrawl
还待研究,应该是决定哪些URL需要重新抓取
11
org.archive.crawler.event
事件管理,如Heritrix的暂停、重启、停止等
12
org.archive.crawler.extractor
Heritrix的造血器,通过它抽取新的URL再次进行抓取
13
org.archive.crawler.fetcher
Heritrix的获取包,如获取HTTP、DNS、FTP数据
14
org.archive.crawler.filter
Heritrix的过滤器,如配合Rule过滤一些不要的URL
15
org.archive.crawler.framework
Heritrix的框架包,存放一些核心类,一般是父类,如Heritrix控制类CrawlController;调度器类Frontier
16
org.archive.crawler.framework.exceptions
Heritrix框架异常包,通常这里的异常抛出会导致Heritrix的停止
17
org.archive.crawler.frontier
Heritrix的调度器,决定抓取哪个URL
18
org.archive.crawler.io
Heritrix的IO格式包,感觉取名不合理,这里只是定义一些格式,如统计数据的格式,错误日志的格式
19
org.archive.crawler.postprocessor
辅助处理器包,感觉取名也不合理,这里只是对处理URL前后进行一些处理,如URL重定向
20
org.archive.crawler.prefetch
Heritrix的预处理器包,如确定一个URL是否已经解析了DNS
21
org.archive.crawler.processor
还没接触到,待研究
22
org.archive.crawler.processor.recrawl
还没接触到,待研究
23
org.archive.crawler.scope
Heritrix抓取范围管理,如种子
24
org.archive.crawler.selftest
管理Heritrix的Web工程self.war
25
org.archive.crawler.settings
管理Heritrix配置文件order.xml中的各项配置
26
org.archive.crawler.settings.refinements
管理Heritrix自己对数据格式的标准,如时间格式
27
org.archive.crawler.url
还没怎么接触到,待研究
28
org.archive.crawler.url.canonicalize
Heritrix的URL规范化,用于规范每一个URL
29
org.archive.crawler.util
Heritrix用于抓取的工具包,如BDB操作工具,IO操作工具
30
org.archive.crawler.writer
Heritrix的下载包,用于将抓取的URL内容写入硬盘
31
org.archive.extractor
还没接触到,待研究
32
org.archive.httpclient
Heritrix为结合httpclient量身打造的包,让自身更好的获取网页内容
33
org.archive.io
Heritrix的IO包,自己封装的一些IO操作类
34
org.archive.io.arc
针对arc格式的IO操作包
35
org.archive.io.warc
针对warc格式的IO操作包
36
Heritrix扩展了的包,主要扩展.URI类
37
.md5
Heritrix对URLMD5加密包,所用不多,待研究
38
.rsync
还没接触到,待研究
39
.s3
还没接触到,待研究
40
org.archive.queue
还没接触到,待研究
41
org.archive.uid
HeritrixID管理,主要针对URI
42
org.archive.util
整个Heritrix的工具类
43
org.archive.util.anvl
还没接触到,待研究
44
org.archive.util.bdbje
Heritrix对BDB的封装
45
org.archive.util.fingerprint
还没接触到,待研究
46
org.archive.util.iterator
Heritrix自身封装的迭代器
47
org.archive.util.ms
还没接触到,待研究
48
st.ata.util
扩展的其他包,待研究
Heritrix源码分析
(二)配置文件order.xml介绍
分类:
搜索引擎2012-06-1016:
28343人阅读评论(0)收藏举报
文章转载自:
order.xml是整个Heritrix的核心,里面的每个一个配置都关系到Heritrix的运行情况,没读源码之前我只能从有限的渠道去获知这些配置的运用.读完之后才知道Heritrix竟然有如此灵活的运用,如可以控制抓取速度,可以优化电脑性能,可以在某一次的抓取上继续抓取.当然整个order.xml里我也没有全部掌握,只知道大部分配置的作用,希望大家指点改正以及补充,谢谢!
1. 代表着该抓取JOB的元素,相当于Html的meta
Xml代码
1.
2.
-- Heritrix抓取JOB的名字,由用户输入,用来区分不同的抓取JOB,Heritrix没有默认值 -->
3.
-- Heritrix抓取JOB的描述,由用户输入,用来描述该抓取JOB,Heritrix没有默认值-->
4.
--Heritrix抓取JOB的操作者,由用户输入,Heritrix没有默认值 -->
5.
--Heritrix抓取JOB的操作者所属组织,由用户输入,Heritrix没有默认值,可以为空 -->
6.
--Heritrix抓取JOB的用户或客户,由用户输入,Heritrix没有默认值,可以为空 -->
7.
--提交该Heritrix抓取JOB的时间,由系统生成 -->
Xml代码
1.
2.
Xml代码
1.
2.
-- Heritrix的顶级目录 -->
3.
-- order.xml所在目录,单个Heritrix实例的目录 -->
4.
-- 用于保存Heritrix的日志文件,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->
5.
-- 用于保存checkpoints(定点备份)文件的目录, 可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->
6.
-- 用于保存crawler-state文件的目录,,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path -->
7.
-- 用于保存网页内容临时文件的目录,,可以是绝对路径,也可以是相对路径,相对路径是相对于disk-path-->
8.
-- 最大下载字节数,当下载字节超出该值爬虫将停止下载。
如果该值为0则表示没有限制-->
9.
-- 最大文档下载数,当下载文档超出该值时爬虫将停止下载。
如果该值为0则表示没有限制-->
10.
-- 最大时间抓取(秒),如果抓取时间超过该值,则爬虫将停止抓取。
如果该值为0则表示没有限制-->
11.
-- 最大线程数用于同时处理多个URI-->
12.
-- 每一个线程的输出缓冲区大小,也就是在内存里存放多大的字节数才写入到文件中-->
13.
-- 每一个线程的输入缓冲区大小,也就是在内存里存放多大的字节数才写入到文件中-->
14.
--分配给DBB缓存堆的百分比,默认为0则表示没有其他要求(通常BDB是需要60%或者是最大值) -->
15. -- 抓取范围,构造CrawlScope,等下拆分来说明--> 16.
17.
19. --Robots.txt协议控制,等下拆分来说明 --> 20.
21. -- Frontier 调度器,等下拆分来说明-- > 22.
23.
25.
27.
29.
31.
33.
35.
37. --凭证存储,如登陆凭证,等下拆分来说明 --> 38.
39.
3.接下来拆分每个组件的配置文件一一进行说明,最后对Heritrix主要的配置也就是我们可以影响抓取的配置进行说明。
3.1:
抓取范围
Xml代码
1. -- 抓取范围,构造CrawlScope--> 2. -- 是否运行这个组件 --> 3. --种子文件名--> 4. -- 是否每一个配置发生变法都要引发重新读取原始种子文件 --> 5. --抓取范围限定的规则,由于自己一直做的是垂直抓取,没有使用以及研究它 --> 6.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Heritrix 源码 分析