网络爬虫Heritrix源码分析(一) 包介绍
欢迎加入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源码分析(一) 包介绍相关推荐
- heritrix源码分析(未完成。太长了!!)
Heritrix源码分析(一) 包介绍 序号 包名 说明 1 org.apache.commons.httpclient 封装了apache的http ...
- 【SemiDrive源码分析】【X9芯片启动流程】08 - X9平台 lk 目录源码分析 之 目录介绍
[SemiDrive源码分析][X9芯片启动流程]08 - X9平台 lk 目录源码分析 之 目录介绍 一./rtos/lk/ 目录结构分析 1.1 /rtos/lk_boot/ 目录结构分析 1.2 ...
- Anroid-async-http封装网络请求框架源码分析
Android-async-http开源项目可以是我们轻松的获取网络数据或者向服务器发送数据,使用起来非常简单, 这个网络请求库是基于Apache HttpClient库之上的一个异步网络请求处理库, ...
- Heritrix源码分析(二) 配置文件order.xml介绍(转)
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/613412 本博客已迁移到本人独立博客: http://www.yun5u. ...
- 前端网络基础 - axios源码分析
前端网络基础 - axios使用_qfc_128220的博客-CSDN博客 在上一节中,我们分析了axios的基本使用,其中有很多让人一时无法参悟透奥妙的设计.我们来逐一通过源码解析下. 目录 axi ...
- android 6.0 SystemUI源码分析(1)-SystemUI介绍
1. SystemUI介绍 SystemUI是一个系统应用,主要功能有: 1)状态栏信息显示,比如电池,wifi信号,3G/4G等icon显示 2)通知面板,比如系统消息,第三方应用消息,都是在通知面 ...
- Heritrix源码分析(六) Heritrix的文件结构分析
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.javaeye.com/blog/642618 欢迎加入Heritrix群(QQ): 109148319 ...
- tcpdump源码分析——抓包原理
本篇我们从总体看下tcpdump工具的抓包原理,通过学习了解并掌握其实现的机制,为后续进一步底层操作做准备. 1.1.1.1 如何实现 先来看看包传递过来的流程,如下图.包从网卡到内存,到内核态,最 ...
- 集合之TreeMap源码分析,简单介绍什么是红黑树,SortedMap和NavigableMap之间的关系和区别
TreeMap底层实现 1. TreeMap底层实现是红黑树,并且树的节点是内部类Entry类型 2. 红黑树的定义 ① 每个节点是黑色或红色:②根节点是黑色:③所有的叶节点是黑色,不是真正的叶节点, ...
- client-go之listers包源码分析
listers包源码分析 listers包 admissionregistration包 listers包 从cache.Indexer中获取原生k8s的对象/列表 admissionregistra ...
最新文章
- hooks 使用dva_Taro3 中使用dva
- MyBatis框架——mybatis插入数据返回主键(mysql、oracle)
- 2013_hangzhou_online
- 传感器 Sensor 加速度【示例】
- 【原创】一点点雕虫小技脚本
- VC6和VS2005(及2010)的一些区别总结
- ASP.NET 3.5 开发大全DOC版
- Creator开源游戏、插件、教程、视频汇总
- 数据oracle的等保三级测评,等级保护测评三级详解测评要求项测评方法及测评步骤...
- 【原版教材•中英对照】密度泛函理论的化学家指南(第二版)— 传统量子力学的化学家们将从这篇得到特别的启发
- 高斯c语言百度云免费,高斯数学(1-6年级)精品课程全集百度云下载
- 用广义线性模型进行数据分析(下)
- Gitee-基于Git的代码托管和研发协作平台,JNPF快速开发框架源码目录截图
- 复杂 Excel 表格导入导出的最简方法
- JAVA 实现《坦克大战联机版》游戏
- 【习题之局域网及组网技术篇】子网划分分配方案
- net_device详解
- chrome浏览器手机模式下不显示鼠标
- pycharm2018破解
- 2020web前端学习路线(附全套前端视频教程+教学大纲
热门文章
- 小瓦怕扫地机器人_小瓦扫地机器人青春版评测:便宜有好货
- 图像去雾算法_HTN图像去雾开源代码
- coco数据集大小分类_COCO数据集的简单介绍
- mybatis执行opensession时空指针异常_关于 Mybatis 缓存的那点事儿,你知道吗?
- selenium 配合多线程_Selenium Webdriver 远程测试和多线程并发测试
- 怎样用计算机求成绩平均分,2017年计算机一级WPS辅导:WPS2007中求特定比例成绩的平均分...
- Selenium Automated test 's Installation environment
- Futter基础第8篇: 实现页面跳转、跳转传值(普通路由、普通路由传值)
- Linux的软连接、硬链接和find命令
- P2900 [USACO08MAR]土地征用Land Acquisition