`
guoyunsky
  • 浏览: 864089 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
3d3a22a0-f00f-3227-8d03-d2bbe672af75
Heritrix源码分析
浏览量:208157
Group-logo
SQL的MapReduce...
浏览量:0
社区版块
存档分类
最新评论

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多个,可见其复杂性...

 

更多技术文章、感悟、分享、勾搭,请用微信扫描:

19
0
分享到:
评论
6 楼 whywen_MoJian 2013-03-03  
最近要学习heritrix,正好从这开始,感谢楼主。
5 楼 美丽的小岛 2012-03-05  
谢谢,博主提供这么好的学习方法与学习资源。
4 楼 agilesc 2011-09-30  
博主,有没有讨论luence和Solr的群。
3 楼 strawbingo 2010-07-12  
谢谢博主共享。

从这里开始学习,希望能跟博主学到更多知识,谢了。
2 楼 guoyunsky 2010-04-25  
yangfuchao418 写道
呵呵,楼主为何不从3.0开始分析起呢,现在已经有极大的变化了。可以说加入了好多核心

呵呵,饭要一口一口吃...
1 楼 yangfuchao418 2010-04-15  
呵呵,楼主为何不从3.0开始分析起呢,现在已经有极大的变化了。可以说加入了好多核心

相关推荐

    基于4GGPRS DTU开发板的硬件图纸与软件代码全套资源,军工级电路,支持多种通信协议与数据加密,适合物联网应用 ,基于4GGPRS DTU开发板的硬件图纸与软件代码全套,军工级电路,支持多种通信协

    基于4GGPRS DTU开发板的硬件图纸与软件代码全套资源,军工级电路,支持多种通信协议与数据加密,适合物联网应用。,基于4GGPRS DTU开发板的硬件图纸与软件代码全套,军工级电路,支持多种通信协议与数据加密,适用于多种物联网应用。,资料:4g GPRS DTU 开发板软件代码硬件图纸料包括:原理图,版图,单片机代码,sim800c官方资料 不含PCB板 本公司批产产品,已无故障运行数年 全套硬件图纸和软件代码。 程序比正点原子的可靠,军工级485电路。 NBIOT和4G等采用AT指令的均可参照此代码 GPRS具有比NBIOT更低的价格更好的网络,是目前低速物联网的主要通讯技术之一。 485转GPRS GPRS支持协议: TCP UDP HTTP-GET HTTP-POST FTP Md5数据加密 心跳包 电源部分,带共模电感,防反接二极管,Tvs管,5-30Vdc转5V和4V 485部分,硬件延时电路,可靠稳定 引出网络状态(兼电源)指示灯,收发指示灯,设置状态指示灯 微动按键设置工作状态 已预留LORA模块位置,若不用可将他的Io口改做他用,能引出一路串口,2路Io口 单片机

    scala-intellij-bin-2024.1.1.zip

    scala-intellij-bin-2024.1.1.zip

    基于Android的平台书架设计实现源码.zip

    基于Android的平台书架设计实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。

    (源码)基于nRF5系列芯片和SoftDevice SDK的蓝牙低能耗应用_1.zip

    # 基于nRF5系列芯片和SoftDevice SDK的蓝牙低能耗应用 ## 项目简介 这是一个基于nRF5系列芯片和SoftDevice SDK的蓝牙低能耗(BLE)应用程序的示例项目。项目包含基于nRF51822和nRF52832芯片的示例代码,以及设备固件升级(DFU)相关的代码。 ## 项目的主要特性和功能 基于nRF5系列芯片项目代码适用于Nordic Semiconductor的nRF51822和nRF52832芯片,这些芯片是专为蓝牙低能耗应用设计的。 使用SoftDevice SDK项目使用了Nordic的SoftDevice SDK,这是一个高度优化的BLE堆栈,适用于nRF5系列芯片。 支持UART通信项目中的BLE应用程序通过UART接口进行通信,允许数据通过BLE连接进行发送和接收。 设备固件升级(DFU)支持项目包含用于安全设备固件升级的引导加载程序,支持固件更新的验证和存储。

    矿业生产管理数字化平台解决方案.doc

    矿业生产管理数字化平台解决方案.doc

    【ACO三维路径规划】基于matlab蚁群算法ACO无人机巡检三维路径规划【含Matlab源码 13058期】.zip

    Matlab领域上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    battery 电池信息表

    kylin v10 SP1 系统下 可以查看本机电池容量放电和充电电流

    基于深度学习的movielens推荐模型新版算法源码+数据+说明文档

    【资源介绍】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,也可以作为小白实战演练和初期项目立项演示的重要参考借鉴资料。 3、本资源作为“学习资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研和多多调试实践。 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip 基于深度学习的movielens推荐模型新版算法源码+数据+说明文档.zip

    【雷达通信】基于matlab雷达系统极化对消仿真【含Matlab源码 9700期】.mp4

    海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

    STM32的智能养老服务机器人系统设计.pdf

    1、以上文章可用于参考,请勿直接抄袭,学习、当作参考文献可以,主张借鉴学习 2、资源本身不含 对应项目代码,如需完整项目源码,请私信博主获取

    基于STM32的智能风扇系统设计.pdf

    1、以上文章可用于参考,请勿直接抄袭,学习、当作参考文献可以,主张借鉴学习 2、资源本身不含 对应项目代码,如需完整项目源码,请私信博主获取

    14.智能台灯(语音模式)_20240318_205506.zip

    14.智能台灯(语音模式)_20240318_205506.zip

    数字信号处理中的采样与重构理论及其应用

    数字信号处理中的采样与重构理论及其应用

    Python快速入门.zip

    python快速入门,零基础也能轻松掌握的入门指南,看着一个就够了。

    LabView与三菱全系列通讯方法详解:上位机读取方法及实践,LabView与三菱全系列通讯方法及上位机数据读取攻略,labview和三菱全系列通讯方法 labview和三菱全系列通讯办法,和上位机读

    LabView与三菱全系列通讯方法详解:上位机读取方法及实践,LabView与三菱全系列通讯方法及上位机数据读取攻略,labview和三菱全系列通讯方法 labview和三菱全系列通讯办法,和上位机读取方法。 ,LabVIEW; 三菱全系列通讯方法; 三菱全系列通讯办法; 上位机读取方法,LabVIEW与三菱全系列通讯方案及上位机读取方法详解

    基于51的多参数水质监测与报警系统设计20250304

    题目:基于51单片机的多参数水质监测与报警系统设计 主控:AT89C51 显示:LCD1602 DS18B20温度传感器 浊度传感器(PCF8591+滑动变阻器模拟) PH传感器(ADC0832+滑动变阻器) 声光报警 led*4 功能: 1.实时检测水质温度、浊度、PH 2.实时显示相关数据 3.可以通过按键修改阈值 4.各数值不在标准范围内启动声光报警 5.ph低于下限红色小灯点亮;ph高于上限绿色小灯电亮;温度低于阈值蓝色小灯电亮;浑浊度高于阈值橙色小灯电亮

    B站黑马程序员python第二章06-标识符(个人笔记)

    在B站看黑马程序员视频,整理的个人笔记

    java项目之水果系统源码.zip

    java项目之水果系统源码

    Delphi 12.3 控件之Office-Tool-with-runtime-v10.14.28.0-x64.zip.rar

    Office_Tool_with_runtime_v10.14.28.0_x64.zip.rar

    【车间调度】基于matlab人工蜂群算法ABC求解分布式置换流水车间调度DPFSP【含Matlab源码 6166期】.mp4

    海神之光上传的视频是由对应的完整代码运行得来的,完整代码皆可运行,亲测可用,适合小白; 1、从视频里可见完整代码的内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作

Global site tag (gtag.js) - Google Analytics