Heritrix
云聪
喜欢简洁的抽象,也着迷神奇的细节,我担心自己因为过于偏向抽象而变得肤浅,也害怕自己因为太过深入细节而迷失,这让我很痛苦,但是我不会放弃挣扎,因为我相信挣扎的过程就是成长。
展开
-
Heritrix3.3.0源码阅读 crawler-beans.cxml中处理器链的配置
<!-- PROCESSING CHAINS Much of the crawler's work is specified by the sequential application of swappable Processor modules. These Processors are collected into three 'chains'. The Ca原创 2015-10-14 14:36:07 · 1051 阅读 · 0 评论 -
Heritrix3.3.0-环境搭建(maven项目)
Heritrix3.3.0是maven项目,但是当我们把它导入eclipse里后,总是有一些jar包不能下载下来,导致项目无法正常。网上有介绍把它改为普通java项目并利用发布版lib目录下的jar包作为依赖使之正常工作的文章——heritrix 3.2.0 -- 环境搭建 。但是,这样的话,我们就没法方便的阅读项目的测试类代码以及相关项目的源码了。考虑到这个原因,便决定花点功夫解决jar不能原创 2015-11-09 13:15:21 · 3649 阅读 · 2 评论 -
Heritrix3.3.0源码阅读 crawler-beans.cxml中URI过滤规则的配置
<!-- SCOPE: rules for which discovered URIs to crawl; order is very important because last decision returned other than 'NONE' wins. --> --> -->原创 2015-11-09 12:43:36 · 1425 阅读 · 2 评论 -
Heritrix3.3.0源码阅读 允许重复下载
Heritrix3.3.0的org.archive.crawler.datamodel.UriUniqFilter接口提供对下载的uri的唯一性保证,它的子类org.archive.crawler.util.SetBasedUriUniqFilter实现了保证发送到下载队列的uri的是唯一的方法:原创 2016-01-21 14:43:11 · 907 阅读 · 0 评论 -
Heritrix3.3.0源码阅读 让爬虫停不下来
在文章Heritrix3.3.0源码阅读 动态加载种子中说过,Heritrix3.3.0有一个很实用的功能,就是在抓取开始之后,依然可以通过在指定目录里放入种子文件的方式向爬虫添加新的种子,这是通过定时扫描这个指定放种子文件的目录加载种子文件然后发布种子来实现的。可是,默认情况下,当发现frontier为空后,爬虫就会停止,不再扫描那个目录。原创 2015-12-31 13:29:19 · 1275 阅读 · 0 评论 -
Heritrix3.3.0源码阅读 动态加载种子
Heritrix3.3.0有一个很实用的功能,就是在抓取开始之后,依然可以通过在指定目录里放入种子文件的方式向爬虫添加新的种子。接下来,我们就来看看这个功能是怎样实现的。这个功能是在org.archive.crawler.framework包下的ActionDirectory类实现的,这个类去掉内容后是这个样子的:public class ActionDirectory implement原创 2015-11-18 16:38:23 · 1007 阅读 · 0 评论 -
Heritrix3.3.0源码阅读 种子模块(观察者模式实践)
种子模块从外部加载种子,并把种子发布给所有需要种子的对象。我们将会看到,这个模块是以观察者模式的形式实现的。本文不会讲到种子的具体加载过程,也不会讲到种子的消费过程,而只会讲种子模块本身,也就是该模块各个类的具体实现及组织方式。让我们开始吧。“种子模块”是该模块一个抽象类的名称,其它具体类都必须继承它。该类源码如下:package org.archive.modules.seeds;i原创 2015-11-18 13:13:29 · 925 阅读 · 0 评论 -
Heritrix3.3.0源码阅读 URI过滤规则
在Heritrix3.3.0源码阅读 crawler-beans.cxml中URI过滤规则的配置中,我们看到了Heritrix3.3.0配置的用于决定URI是否被接受的类。而本文的目的是,通过阅读源码,了解(1)一个URI处理类是怎样工作的(2)一系列URI处理类是如何配合工作的。首先,我们来解决第一个问题。(一)所有URI处理类都必须继承DecideRule抽象类:原创 2015-11-16 15:59:35 · 1585 阅读 · 8 评论