Heritrix源码分析
Heritrix源码分析
fanxiaoqing
这个作者很懒,什么都没留下…
展开
-
Heritrix使用小结 - Shiny programming
1. Heritrix 简介 Heritrix是一个专门为互联网上的网页进行存档而开发的网页检索器。它使用Java编写并且完全开源。它主要的用户界面可以通过一个web流量器来访问并通过它来控制检索器的行为,另外,它还有一个命令行工具来供用户选择调用。 Heritrix是由互联网档案馆和北欧国家图书馆联合规范化编写于2003年初。第一次正式发布是在2004年1月,并不断的被互联网档案馆和其他原创 2013-04-30 16:33:55 · 1029 阅读 · 0 评论 -
Heritrix源码分析(十三) Heritrix的控制中心(大脑)CrawlController(二)
上一篇博客主要介绍了CrawlController的各个属性,博客地址:http://guoyunsky.javaeye.com/blog/650744 ,以及三个特殊的属性.这里就介绍它的相关方法,首先从初始化开始介绍,主要请看代码以及注释: 1.Heritrix的初始化: /** * 初始化CrawlController * @param sH 配置文件(order原创 2013-04-30 16:33:04 · 924 阅读 · 1 评论 -
Heritrix源码分析(十二) Heritrix的控制中心(大脑)CrawlController(一)
CrawlController的确是Heritrix的大脑,在Heritrix中拥有无上的权利!可以控制Heritrix的启动、暂停、停止,也定时进行数据统计、数据汇报和文件管理。同时CrawlController也基本上贯穿整个Heritrix代码,和CrawlURI一样。同时CrawlController纯代码页进2000行,下面就先介绍里面的属性和主要方法,同时对一些灵活用法也加以介绍:原创 2013-04-30 16:32:06 · 845 阅读 · 0 评论 -
Heritrix源码分析(十一) Heritrix中的URL--CandidateURI和CrawlURI以及如何增加自己的属性
Url是爬虫的核心,因为爬虫就是依赖URL一层一层的抓取下去,最后完成整个抓取。Heritrix中的URL比较特殊,有以下继承关系(由于不对继承关系作介绍,所以这里就不画图了): 1)org.archive.crawler.datamodel.CrawlURI——>CandidateURI 2)org.archive.net.UURI——>org.arc原创 2013-04-30 16:31:25 · 881 阅读 · 0 评论 -
Heritrix源码分析(十) Heritrix中的Http Status Code(Http状态码)
以前在做Web开发的时候就接触过一些HttpStatus Code,比如404,500.后来接触Heritrix之后才知道HttpStatus Code竟然有如此之多。不一样的HttpStatus Code就代表不一样的Http状态,简单的如成功、失败、重定向等。Heritrix自己也根据自己的需求增加了一些,同时由于Heritrix通过HttpClient去获取网络资源,其中一部分HttpSta原创 2013-04-30 16:30:45 · 1020 阅读 · 0 评论 -
Heritrix源码分析(九) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
前面说过Heritrix可以在某个抓取基础上(这里假设为A)继续抓取,因为Heritrix对每一个URL都会有相应的日志处理,同时还有checkpoint(备份中心)。所以只要通过A上的日志就可以完全按照该基础A继续抓取,不会重复抓取任何A抓过的任何东西,也会继续抓取A没有抓过的URL。做到这个有两种方法,一种是针对Web启动的,还有一种是针对我上次写的不通过Web启动的方式(启动方式见博客:He原创 2013-04-30 16:30:06 · 797 阅读 · 0 评论 -
Heritrix源码分析(八) Heritrix8个处理器(Processor)介绍
Heritrix采用多线程去抓取数据,每次运行基本都要经过以下8个处理器处理(种子URL、先决条件URL除外),如此形成一整个流程。下面就大概介绍下每个处理器的作用以及大概处理的步骤。以后分析源码的时候再细节分析...... 8个处理器都继承org.archive.crawler.framework.Processor类,然后每个处理器都有自己的子类实现。同时相近处理器用org.原创 2013-04-30 16:29:06 · 782 阅读 · 0 评论 -
Heritrix源码分析(七) Heritrix总体介绍
网上关于Heritrix的基本介绍有很多,这里就不再重复。我这里主要介绍下它的优缺点。然后我会介绍它的运作流程以及我会从流程中各个点结合源码来分别介绍.... Heritrix整体让人感觉有些复杂和繁琐,一个爬虫写成这样也真是成仙了。接触Heritrix有1年半了,大概花了2个月的时间(每天看代码时间8小时以上)将它的代码看完。这1年半也接触过Lucene和Hadoop,也兴致勃勃的原创 2013-04-30 16:28:09 · 792 阅读 · 0 评论 -
Heritrix源码分析(六) Heritrix的文件结构分析
每通过Heritrix运行一次抓取后,发现在该Job目录下就会有很多文件。这里说明下每个文件的作用,同时更主要介绍它的日志文件,因为我们可以通过日志文件发现Heritrix的抓取情况。首先贴个图: 以上就是Heritrix完成的文件结构,现在一一说明 序号 文件名 说明 1 order.xml Heritrix运行原创 2013-04-30 16:27:34 · 775 阅读 · 0 评论 -
Heritrix源码分析(五) 如何让Heritrix在Ecplise等IDE下编程启动
在Heritrix注释里说Heritrix有三种启动方式,但我感觉只有两种:一种是通过tomcat或者JBOSS或者Jetty等Web容器,还有一种自然就是不通过Web直接编程运行。由于第二种方式更适合调试、研究代码,所以这里就介绍下它的编程启动方式吧....这里贴上示例代码以及注释: Java代码 import java.io.File; import原创 2013-04-30 16:27:00 · 786 阅读 · 0 评论 -
Heritrix源码分析(四) 各个类说明(二)
9.org.archive.crawler.fetcher 序号 类 说明 1 FetchDNS 获取DNS数据,如IP 2 FetchFTP 获取FTP数据 3 FetchHTTP 获取HTTP数据 4 HeritrixHttpMethodRetryHandler原创 2013-04-30 16:26:13 · 865 阅读 · 0 评论 -
Heritrix源码分析(四) 各个类说明(一)
Heritrix的类的确很繁琐,往往继承了一层又一层,最多的继承好像有7层。下面就一个包一个包的说明每个类的作用,由于里面Heritrix组件分明,很多组件没用到的同时该组件的类我也没怎么接触,所以这里会忽略一部分 1.org.archive.crawler 序号 类 说明 1 CommandLineParser Heritrix也可以通原创 2013-04-30 16:25:31 · 881 阅读 · 0 评论 -
Heritrix源码分析(三) 修改配置文件order.xml加快你的抓取速度
Heritrix的order.xml分了很多组件,可以灵活的配置各个抓取参数。但很多人都关心如何使得抓取更快更久更多,这里首先从Heritrix自身着手吧,修改order.xml的一些参数其实也可以达到这一目的. 下面就列出各个参数、说明和理想值 序号 配置名 理想值 说明 1 0 0 最大下载字节数原创 2013-04-30 16:24:51 · 814 阅读 · 0 评论 -
Heritrix源码分析(二) 配置文件order.xml介绍
order.xml是整个Heritrix的核心,里面的每个一个配置都关系到Heritrix的运行情况,没读源码之前我只能从有限的渠道去获知这些配置的运用.读完之后才知道Heritrix竟然有如此灵活的运用,如可以控制抓取速度,可以优化电脑性能,可以在某一次的抓取上继续抓取.当然整个order.xml里我也没有全部掌握,只知道大部分配置的作用,希望大家指点改正以及补充,谢谢!原创 2013-04-30 16:24:10 · 1001 阅读 · 0 评论 -
Heritrix源码分析(一) 包介绍
之前说过要分享下我的爬虫经验,但一直找不到突破口,现在才感觉写点东西真的很难,所以大家真的要感谢那些无私的前辈们,在网上留下的一篇篇可以指点迷津的文章。 想了很久,还是先从Heritrix的包开始说起,然后再说类,最后讲下如何加工Heritrix,也就是将其打造成自己想要的爬虫,这里补充下,我用的版本是1.14.3. 序号 包名原创 2013-04-30 16:23:16 · 920 阅读 · 0 评论 -
Heritrix eclipse安装、配置
准备用Heritrix来做个小的搜索引擎,以下是我在配置Heritrix的过程中遇到的各种问题,通过几个小时的查找和分析,终于把Heritrix的单独配置和在eclipse下的配置做成功了。我在配置过程中遇到问题的时候,发现网上关于这方面的资料比较少,很多人都遇到过相同的问题,但没有人具体详细的给予解答,下面我将从网上获得的资料和我个人的认识进行总结,希望对才开始配置Heritrix的朋友有所帮助原创 2013-04-30 16:22:30 · 2426 阅读 · 0 评论