本博客属原创文章,欢迎转载!但转载请务必注明出处:http://guoyunsky.iteye.com/blog/613249 
本博客已迁移到本人独立博客: http://www.yun5u.com/ 
欢迎加入Heritrix群(QQ):109148319,10447185(已满)  , Lucene/Solr群(QQ) :  118972724

之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。 
想了很久,还是先从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多个,可见其复杂性...

Heritrix源码分析(一) 包介绍(转)的更多相关文章

  1. Heritrix源码分析(十四) 如何让Heritrix不间断的抓取(转)

    欢迎加入Heritrix群(QQ):109148319,10447185 , Lucene/Solr群(QQ) :  118972724 本博客已迁移到本人独立博客: http://www.yun5u ...

  2. Heritrix源码分析(九) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/644396       本博客已迁移到本人独立博客: http://www.yun5u ...

  3. Heritrix源码分析(十四)

    近段时间在搞定Lucene的一些问题,所以Heritrix源码分析暂时告一段落.今天下午在群里有同学提到了Heritrix异常终止的问题以及让Heritrix不停的抓取(就是抓完一遍后载入种子继续抓取 ...

  4. 精尽Spring Boot源码分析 - Jar 包的启动实现

    该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...

  5. Heritrix源码分析(八) Heritrix8个处理器(Processor)介绍(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/643367       本博客已迁移到本人独立博客: http://www.yun5u ...

  6. Heritrix源码分析(七) Heritrix总体介绍(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/642794         本博客已迁移到本人独立博客: http://www.yun ...

  7. Heritrix源码分析(二) 配置文件order.xml介绍(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/613412      本博客已迁移到本人独立博客: http://www.yun5u. ...

  8. Redis网络库源码分析(1)之介绍篇

    一.前言 Redis网络库是一个单线程EPOLL模型的网络库,和Memcached使用的libevent相比,它没有那么庞大,代码一共2000多行,因此比较容易分析.其实网上已经有非常多有关这个网络库 ...

  9. Heritrix源码分析(十五) 各种问题总结(转)

    开博客以及建立Heritrix 群有一段时间了(这里谢谢大家的关注),这篇博客将整理这段时间所遇到的问题.同时由于自己从今年5月份开始就不怎么接触Heritrix,很多东西开始遗忘(不过里面思想没忘) ...

随机推荐

  1. **RESTful API版本控制策略

    做RESTful开放平台,一方面其API变动越少, 对API调用者越有利:另一方面,没有人可以预测未来,系统在发展的过程中,不可避免的需要添加新的资源,或者修改现有资源.因此,改动升级必不可少,但是, ...

  2. Codeforces Round #336 (Div. 2) A. Saitama Destroys Hotel 模拟

    A. Saitama Destroys Hotel   Saitama accidentally destroyed a hotel again. To repay the hotel company ...

  3. CentOS如何开启ssh远程连接

    假设VPS采用centos,再假设用较新版本6.5. VPS上可能没有安装桌面,但一般来说都会安装ssh,并且防火墙默认开放22端口. 那就从ssh开始. # 安装ssh,默认已安装好 # yum i ...

  4. Java:日历类、日期类、数学类、运行时类、随机类、系统类

    一:Calendar类 java.util 抽象类Calendar   1.static Calendar getInstance()使用默认时区和语言环境获得一个日历. 2. int get(int ...

  5. Android AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

    AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似.都有两种相似的用法:(1)在指定时长后执行某项操 ...

  6. J2ee 巴巴网站制作(二)

    导入spring jar包:

  7. 网页爬虫的设计与实现(Java版)

    网页爬虫的设计与实现(Java版)     最近为了练手而且对网页爬虫也挺感兴趣,决定自己写一个网页爬虫程序. 首先看看爬虫都应该有哪些功能. 内容来自(http://www.ibm.com/deve ...

  8. jdbc框架 commons-dbutils+google guice+servlet 实现一个例子

    最近闲着无聊,于是看了一下jdbc框架 commons-dbutils与注入google guice. 我就简单的封装了一下代码,效率还是可以的.... jdbc+google guice+servl ...

  9. js中的编码与解码

    一.encodeURI()定义和用法 encodeURI() 函数可把字符串作为 URI 进行编码. 语法 encodeURI(URIstring) 参数 描述 URIstring 必需.一个字符串, ...

  10. spring mvc 导出 excel

    // js 触发导出 excel 方法 导出当前页的数据 含有条件查询的结果 // js 框架使用的 是 easyui function doExport(){ var optins = $(&quo ...