Heritrix源码分析(一) 包介绍
本博客属原创文章,欢迎转载!但转载请务必注明出处:http://guoyunsky.iteye.com/blog/613249
欢迎加入Heritrix群(QQ):109148319
之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。
想了很久,还是先从Heritrix的包开始说起,然后再说类,最后讲下如何加工Heritrix,也就是将其打造成自己想要的爬虫,这里补充下,我用的版本是1.14.3.
同时欢迎加入我建的Heritrix爬虫群一起讨论学习: 10447185
序号 | 包名 | 说明 | 1 | org.apache.commons.httpclient | 封装了apache的httpclient用于Fetch网页内容 | 2 | org.apache.commons.httpclient.cookie | 封装了apache的httpclient用于Fetch网页内容,这里主要处理Cookie | 3 | org.apache.commons.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 | org.archive.net | Heritrix扩展了java.net的包,主要扩展java.net.URI类 | 37 | org.archive.net.md5 | Heritrix对URL MD5加密包,所用不多,待研究 | 38 | org.archive.net.rsync | 还没接触到,待研究 | 39 | org.archive.net.s3 | 还没接触到,待研究 | 40 | org.archive.queue | 还没接触到,待研究 | 41 | org.archive.uid | Heritrix ID管理,主要针对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自己的包有48个之多,还有它导入的第三方包也有30多个,可见其复杂性...
更多技术文章、感悟、分享、勾搭,请用微信扫描:
相关推荐
woyanyouxin 2010-11-21
wdeo0 2010-11-21
bxqybxqy 2010-11-21
冬冬阳光 2013-07-30
ITqingliang 2011-06-02
神码不是浮云 2010-12-04
tonygsw 2010-11-21
zhonglinzhang 2010-11-21
lvbaolin 2010-11-21
sunh 2010-11-21
阿赞 2010-08-08
douyunqian 2010-07-13
heyeqingquan 2010-03-11