知识点
相关文章
更多最近更新
更多Heritrix源码分析(四) 各个类说明(二)
2019-03-27 01:06|来源: 网路
本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.javaeye.com/blog/632191
欢迎加入Heritrix群(QQ): 109148319 , 10447185(已满) , Lucene/Solr群(QQ) : 118972724
9.org.archive.crawler.fetcher
序号 | 类 | 说明 |
1 | FetchDNS | 获取DNS数据,如IP |
2 | FetchFTP | 获取FTP数据 |
3 | FetchHTTP | 获取HTTP数据 |
4 | HeritrixHttpMethodRetryHandler | HTTP重试处理器,重新去连接HTTP |
序号 | 类 | 说明 |
1 | AbstractTracker | 统计器,统计抓取情况,父类,具体统计由子类实现 |
2 | AlertManager | UI界面消息管理器,给用户显示爬虫相关消息,如一些异常情况 |
3 | Checkpointer | 备份器,定时备份Heritrix相关数据,如日志、BDB文件等 |
4 | CrawlController | 控制器,控制整个爬虫的启动、暂停、停止等,Heritrix的核心类 |
5 | CrawlScope | URL范围管理器,如种子、哪些URL符合抓取哪些URL不符合抓取 |
6 | Filter | 过滤器,决定哪些URL可以抓取哪些不可以,父类,具体由子类实现 |
7 | Frontier | 调度器,对进来的URL进行调度,使其在接来下可以抓取 |
8 | Processor | 处理器,一个URL由不同的处理器(组件)合作完成,这个为处理器父类,不同的组件有不同的实现 |
9 | ProcessorChain | 处理器链,包含相同类型的处理器,如抽取URL的时候有从Html抽取的ExtractorHTML,从JavaScript抽取的ExtractorJs |
10 | ProcessorChainList | 处理器链集合,包含多个处理器链,每个URL都会有这样一个处理器集合,使得先从该集合中获取处理器链,然后再从处理器链中获取每个处理器,最后让每个处理器都做他们的处理,完成整个抓取 |
11 | Scoper | 范围管理器,验证一个URL是否在用户配置(从order.xml中获取)的范围 |
12 | StatisticsTracking | 跟踪统计器,主要统计抓取情况,如宽带占用、抓取多少URL、抓取速度等,贯穿整个爬虫的运行 |
13 | ToePool | 线程池,用于管理爬虫线程 |
14 | ToeThread | 爬虫线程,代表着一个抓取,Heritrix的核心类,贯穿整个爬虫的运行,接下来会重点分析 |
15 | WriterPoolProcessor | 写处理器管理池,用于管理多个写处理器,可以在分布式中使用 |
序号 | 类 | 说明 |
1 | AbstractFrontier | 调度器基本实现类,Heritrix最复杂的地方之一,接下来会重点分析 |
2 | BdbFrontier | BDB调度器,用BDB数据库去管理所有的URL,如保存哪些待抓取的URL,哪些已经抓取的URL,Heritrix最复杂的地方之一,接下来会重点分析 |
3 | BdbMultipleWorkQueues | 管理着所有的队列,所有的队列数据保存在BDB数据库中.Heritrix最复杂的地方之一,接下来会重点分析 |
4 | BdbWorkQueue | 抓取队列由BDB存储管理,相同classkey的URL为一个队列.classkey由用户配置决定,Heritrix默认是相同host的URL就为一个队列.Heritrix最复杂的地方之一,接下来会重点分析 |
5 | FrontierJournal | 调度器记录管理,记录调度器的每一次运行情况,如插入URL,插入失败URL等 |
6 | HostnameQueueAssignmentPolicy | URL ClassKey获得策略,Heritrix的默认策略,通过域名来获得URL的class key。然后相同的classkey存放相同的队列 |
7 | IPQueueAssignmentPolicy | URL ClassKey获得策略,这个策略是通过IP来获得URL的class key |
8 | QueueAssignmentPolicy | URL ClassKey获得策略,该类是抽象类,不同的策略由不同的子类实现,如根据域名、IP等,用户可以自己扩展 |
9 | RecoveryJournal | 管理着/logs/recover.gz,该文件记录所有的URL抓取情况,如抓取成功、失败都有不同的对应格式。该文件主要用于下次Heritrix恢复,如Heritrix异常中断重新启动Heritrix的话又会重新抓取,而如果基于该文件启动的话则会避免这个问题,同时对于上次异常中断而来不及抓取的URL都会优先抓取 |
10 | RecyclingSerialBinding | 给每个线程分配的数据输出流管理器,里面用ThreadLocal来管理每个线程的数据输出流,如此可以节省大量重复序列化 |
11 | WorkQueue | 代表着一个队列,抽象类,会有不同的子类实现,如由BDB存储数据的BdbWorkQueue,Heritrix最复杂的地方之一,接下来会重点分析 |
12 | WorkQueueFrontier | 队列调度器,管理着所有的队列,里面用不同的类型管理着不同的队列,如不在活动状态队列:Queue<String> inactiveQueues.可以说是Heritrix中最为复杂最为关键的类,接下来会重重点分析 |
转自:http://www.cnblogs.com/loveyakamoz/archive/2011/11/26/2264531
相关问答
更多-
基本工资2000吧,奖金之类得看你的工作成绩哦
-
java web开发实战1200例 第二卷 源码[2022-07-29]
亲 正在上传,大概一小时之后发送到邮箱、 记得采纳哦 网速不给力啊 亲 再等等哦 -
呵呵,没用过Heritrix,不太清楚sun.net.www.protocol.file.FileURLConnection在哪个jar包里。 楼主弄个classfinder之类的搜索下啊
-
jquery 源码 分析[2022-08-08]
看完之后对对象和原型的理解帮助会非常大。 但最好等用jquery比较熟悉之后再看源码,那么会对理解比较有好处,也会比较容易看懂。 最好从jquery核心处开始看,看懂$.fn.init以及基本方法之后再看别的$.extend的时候就比较容易了。 -
Linux源码情景分析[2023-08-23]
关于内核的书不在多,而是要精,强烈推荐 《Linux内核设计与实现》,英文名Linux Kernel Development,机械工业出版社,¥35, 美国Robert Love著,陈莉君译。 此书是当今首屈一指的入门最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。对没怎么深入内核的人来说,这是强烈推荐的一本书。 -
怎样用python实现SVM分类器,用于情感分析的二分类[2023-02-10]
用的什么库做SVM呢?如果这个库支持多分类SVM的话就很容易改成识别-的-- -
《深入分析linux内核源码》[2022-08-04]
不好意思,我现在才看到消息, 我会尽快发到您的邮箱的。 -
二分类怎么做数据分析python[2021-07-14]
推荐Rice大学的那门python课,Rice大学的课程总共有3门,现在貌似拆解成6门了;每门课8周时间,按照由浅入深的顺序来的。第一门课是Python基础,介绍了Python的基础语法 -
如何对MFC源码进行分析呢?[2021-12-31]
谁说入口就一定是WinMain?很多自定义入口,而且控制台程序默认入口为main,对于MFC的入口,实际上他也是从WinMain开始的,只是WinMain并不在程序中显示,你去查一下头文件就知道了,或者在头文件WinMain设置断点,实际上他还会断在WinMain上,另外好像还有一个AfxMain,我忘记了你自己看头文件 -
你需要在Modules页面中将ARCWriterProcessor这项,修改成MirrorWriterProcessor才会保存为镜像文件的。 如果你在Modules页面中不能选择,需要在Eclipse里面设置conf为Classpath( 在Eclipse的Run Dialog中,Classpath标签Table,选中User Entries,然后右边会有Advance选项,选Add External Folder,把你的Conf加进去就行了)