欢迎加入Heritrix群(QQ):10447185  , Lucene/Solr群(QQ) :  118972724

之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。 
想了很久,还是先从Heritrix的包开始说起,然后再说类,最后讲下如何加工Heritrix,也就是将其打造成自己想要的爬虫,这里补充下,我用的版本是1.14.3.

序号 包名                                   说明
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源码分析(一) 包介绍  序号  包名                   说明 1 org.apache.commons.httpclient      封装了apache的http ...

  2. 【SemiDrive源码分析】【X9芯片启动流程】08 - X9平台 lk 目录源码分析 之 目录介绍

    [SemiDrive源码分析][X9芯片启动流程]08 - X9平台 lk 目录源码分析 之 目录介绍 一./rtos/lk/ 目录结构分析 1.1 /rtos/lk_boot/ 目录结构分析 1.2 ...

  3. Anroid-async-http封装网络请求框架源码分析

    Android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单, 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库, ...

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

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

  5. 前端网络基础 - axios源码分析

    前端网络基础 - axios使用_qfc_128220的博客-CSDN博客 在上一节中,我们分析了axios的基本使用,其中有很多让人一时无法参悟透奥妙的设计.我们来逐一通过源码解析下. 目录 axi ...

  6. android 6.0 SystemUI源码分析(1)-SystemUI介绍

    1. SystemUI介绍 SystemUI是一个系统应用,主要功能有: 1)状态栏信息显示,比如电池,wifi信号,3G/4G等icon显示 2)通知面板,比如系统消息,第三方应用消息,都是在通知面 ...

  7. Heritrix源码分析(六) Heritrix的文件结构分析

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.javaeye.com/blog/642618        欢迎加入Heritrix群(QQ): 109148319 ...

  8. tcpdump源码分析——抓包原理

    本篇我们从总体看下tcpdump工具的抓包原理,通过学习了解并掌握其实现的机制,为后续进一步底层操作做准备. 1.1.1.1  如何实现 先来看看包传递过来的流程,如下图.包从网卡到内存,到内核态,最 ...

  9. 集合之TreeMap源码分析,简单介绍什么是红黑树,SortedMap和NavigableMap之间的关系和区别

    TreeMap底层实现 1. TreeMap底层实现是红黑树,并且树的节点是内部类Entry类型 2. 红黑树的定义 ① 每个节点是黑色或红色:②根节点是黑色:③所有的叶节点是黑色,不是真正的叶节点, ...

  10. client-go之listers包源码分析

    listers包源码分析 listers包 admissionregistration包 listers包 从cache.Indexer中获取原生k8s的对象/列表 admissionregistra ...

最新文章

  1. hooks 使用dva_Taro3 中使用dva
  2. MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
  3. 2013_hangzhou_online
  4. 传感器 Sensor 加速度【示例】
  5. 【原创】一点点雕虫小技脚本
  6. VC6和VS2005(及2010)的一些区别总结
  7. ASP.NET 3.5 开发大全DOC版
  8. Creator开源游戏、插件、教程、视频汇总
  9. 数据oracle的等保三级测评,等级保护测评三级详解测评要求项测评方法及测评步骤...
  10. 【原版教材•中英对照】密度泛函理论的化学家指南(第二版)— 传统量子力学的化学家们将从这篇得到特别的启发
  11. 高斯c语言百度云免费,高斯数学(1-6年级)精品课程全集百度云下载
  12. 用广义线性模型进行数据分析(下)
  13. Gitee-基于Git的代码托管和研发协作平台,JNPF快速开发框架源码目录截图
  14. 复杂 Excel 表格导入导出的最简方法
  15. JAVA 实现《坦克大战联机版》游戏
  16. 【习题之局域网及组网技术篇】子网划分分配方案
  17. net_device详解
  18. chrome浏览器手机模式下不显示鼠标
  19. pycharm2018破解
  20. 2020web前端学习路线(附全套前端视频教程+教学大纲

热门文章

  1. 小瓦怕扫地机器人_小瓦扫地机器人青春版评测:便宜有好货
  2. 图像去雾算法_HTN图像去雾开源代码
  3. coco数据集大小分类_COCO数据集的简单介绍
  4. mybatis执行opensession时空指针异常_关于 Mybatis 缓存的那点事儿,你知道吗?
  5. selenium 配合多线程_Selenium Webdriver 远程测试和多线程并发测试
  6. 怎样用计算机求成绩平均分,2017年计算机一级WPS辅导:WPS2007中求特定比例成绩的平均分...
  7. Selenium Automated test 's Installation environment
  8. Futter基础第8篇: 实现页面跳转、跳转传值(普通路由、普通路由传值)
  9. Linux的软连接、硬链接和find命令
  10. P2900 [USACO08MAR]土地征用Land Acquisition