Heritrix源码分析(一) 包介绍(转)
本博客属原创文章,欢迎转载!但转载请务必注明出处: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源码分析(一) 包介绍(转)的更多相关文章
- Heritrix源码分析(十四) 如何让Heritrix不间断的抓取(转)
欢迎加入Heritrix群(QQ):109148319,10447185 , Lucene/Solr群(QQ) : 118972724 本博客已迁移到本人独立博客: http://www.yun5u ...
- Heritrix源码分析(九) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/644396 本博客已迁移到本人独立博客: http://www.yun5u ...
- Heritrix源码分析(十四)
近段时间在搞定Lucene的一些问题,所以Heritrix源码分析暂时告一段落.今天下午在群里有同学提到了Heritrix异常终止的问题以及让Heritrix不停的抓取(就是抓完一遍后载入种子继续抓取 ...
- 精尽Spring Boot源码分析 - Jar 包的启动实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- Heritrix源码分析(八) Heritrix8个处理器(Processor)介绍(转)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/643367 本博客已迁移到本人独立博客: http://www.yun5u ...
- Heritrix源码分析(七) Heritrix总体介绍(转)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/642794 本博客已迁移到本人独立博客: http://www.yun ...
- Heritrix源码分析(二) 配置文件order.xml介绍(转)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/613412 本博客已迁移到本人独立博客: http://www.yun5u. ...
- Redis网络库源码分析(1)之介绍篇
一.前言 Redis网络库是一个单线程EPOLL模型的网络库,和Memcached使用的libevent相比,它没有那么庞大,代码一共2000多行,因此比较容易分析.其实网上已经有非常多有关这个网络库 ...
- Heritrix源码分析(十五) 各种问题总结(转)
开博客以及建立Heritrix 群有一段时间了(这里谢谢大家的关注),这篇博客将整理这段时间所遇到的问题.同时由于自己从今年5月份开始就不怎么接触Heritrix,很多东西开始遗忘(不过里面思想没忘) ...
随机推荐
- BZOJ 2424: [HAOI2010]订货 费用流
2424: [HAOI2010]订货 Description 某公司估计市场在第i个月对某产品的需求量为Ui,已知在第i月该产品的订货单价为di,上个月月底未销完的单位产品要付存贮费用m,假定第一月月 ...
- DP+矩阵快速幂 HDOJ 5318 The Goddess Of The Moon
题目传送门 /* DP::dp[i][k] 表示选择i个字符串,最后一次是k类型的字符串,它由sum (dp[i-1][j]) (a[j], a[k] is ok)累加而来 矩阵快速幂:将n个字符串看 ...
- 李洪强iOS经典面试题12
1.说说响应链 答: 事件响应链.包括点击事件,画面刷新事件等.在视图栈内从上至下,或者从下之上传播. 可以说点事件的分发,传递以及处理.具体可以去看下touch事件这块.因为问的太抽象化了 严重怀 ...
- iOS开发--基于AFNetWorking3.0的图片缓存分析
图片在APP中占有重要的角色,对图片做好缓存是重要的一项工作.[TOC] 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.C ...
- Java-马士兵设计模式学习笔记-观察者模式-OOD 封装Listener
一.概述 childe类中的是关联监听者dad的,若要再增加监听者,会很不方便,且要修改代码.好的方法是封装监听者类,用addListener()方法动态添加监听者 二.代码 1.Test.java ...
- 阿里云centos6搭建vpn
下载脚本 wget http://latrell.me/wp-content/uploads/vpn_centos6.sh 运行脚本 chmod a+x vpn_centos6.sh ./vpn_ce ...
- QT为QLabel添加Click事件(如果我们使用组件,我们关心的是信号槽;如果我们自定义组件,我们关心的是事件)
其实就是改写了一个函数:mouseReleaseEvent,当在QLabel放开鼠标的时,就发射点击信号. #ifndef CLICKEDLABEL_H_ #define CLICKEDLABEL_H ...
- Docker初步认识安装和简单实例
前话 问题 开发网站需要搭建服务器环境,FQ官网下载软件包,搭建配置nginx,apache,数据库等.官网没有直接可用的运行版本,担心网络流传的非官方发布软件包不安全还得自行编译官方源码安装,忘记步 ...
- VS 解决方案目录结构设置
涉及到的配置: 项目编译时使用的中间目录: 项目链接的输出目录: 项目编译结束后,拷贝生成的 dll 和 lib 到指定目录: 项目编译结束后,拷贝需要的 dll 到输出目录: 设置项目的工作目录: ...
- JBOSS内存溢出处理
JBOSS内存溢出处理 前几天公司一个项目的服务器坏了,就换了一个备份服务器顶替一下,但是没有跑一会就宕机了,一直报java.lang.OutOfMemoryError....一看到这里,就知道是内存 ...