Heritrix爬虫方案

Heritrix爬虫配置与定制指南
本文详细介绍了Heritrix爬虫的类包结构、扩展与定制,包括如何添加自定义Extractor、抓取特定格式网页、参数配置、数据过滤和抓取范围设置。还提供了登陆创建抓取目标的步骤,以及在Eclipse中运行和配置Heritrix的方法。

Heritrix爬虫说明

  1. 概述

安装部署好的Heritrix爬虫总共有28个jar包(不包括系统jar包)。关于Heritrix的安装配置及使用方法在文档末尾给出网址链接。在Eclipse中安装配置完成后,运行Heritrix.java启动爬虫,在浏览器地址栏中输入:localhost:8080进入UI任务创建、参数配置界面进行各项操作。

  1. 类包说明

  1. 1包说明

序号

包名

说明

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

Heritrix处理器

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

Heritrix是一个开源,可扩展的web爬虫项目。用户可以使用它来从网上抓取想要的资源。Heritrix设计成严格按照robots.txt文件的排除指示和META robots标签。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。 Heritrix是一个爬虫框架,其组织结构如图2.1所示,包含了整个组件和抓取流程: Heritrix采用的是模块化的设计,各个模块由一个控制器类(CrawlController类)来协调,控制器是整体的核心。控制器结构图如图2.2所示:   图2.2 CrawlController类结构图 CrawlController类是整个爬虫的总控制者,控制整个抓取工作的起点,决定整个抓取任务的开始和结束。CrawlController从Frontier获取URL,传递给线程池(ToePool)中的ToeThread处理。 Frontier(边界控制器)主要确定下一个将被处理的URL,负责访问的均衡处理,避免对某一Web服务器造成太大的压力。Frontier保存着爬虫的状态,包括已经找到的URI、正在处理中的URI和已经处理过的URI。 Heritrix是按多线程方式抓取的爬虫,主线程把任务分配给Teo线程(处理线程),每个Teo线程每次处理一个URL。Teo线程对每个URL执行一遍URL处理器链。URL处理器链包括如下5个处理步骤。整个流程都在图2.1中。 (1)预取链:主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。 (2)提取链:主要是下载网页,进行DNS转换,填写请求和响应表单。 (3)抽取链:当提取完成时,抽取感兴趣的HTML和JavaScript,通常那里有新的要抓取的URL。 (4)写链:存储抓取结果,可以在这一步直接做全文索引。Heritrix提供了用ARC格式保存下载结果的ARCWriterProcessor实现。 (5)提交链:做和此URL相关操作的最后处理。检查哪些新提取出的URL在抓取范围内,然后把这些URL提交给Frontier。另外还会更新DNS缓存信息。 服务器缓存(Server cache)存放服务器的持久信息,能够被爬行部件随时查到,包括被抓取的Web服务器信息,例如DNS查询结果,也就是IP地址。 标签:Heritrix
Heritrix是IA的开放源代码,可扩展的,基于整个Web的,归档网络爬虫工程 Heritrix工程始于2003年初,IA的目的是开发一个特殊的爬虫,对网上的 资源进行归档,建立网络数字图书馆,在过去的6年里,IA已经建立了400TB的数据。 IA期望他们的crawler包含以下几种: 宽带爬虫:能够以更高的带宽去站点爬。 主题爬虫:集中于被选择的问题。 持续爬虫:不仅仅爬更当前的网页还负责爬日后更新的网页。 实验爬虫:对爬虫技术进行实验,以决定该爬什么,以及对不同协议的爬虫爬行结果进行分析的。 Heritrix的主页是http://crawler.archive.org Heritrix是一个爬虫框架,可加如入一些可互换的组件。 它的执行是递归进行的,主要有以下几步: 1。在预定的URI中选择一个。 2。获取URI 3。分析,归档结果 4。选择已经发现的感兴趣的URI。加入预定队列。 5。标记已经处理过的URI Heritrix主要有三大部件:范围部件,边界部件,处理器链 范围部件:主要按照规则决定将哪个URI入队。 边界部件:跟踪哪个预定的URI将被收集,和已经被收集的URI,选择下一个URI,剔除已经处理过的URI。 处理器链:包含若干处理器获取URI,分析结果,将它们传回给边界部件 Heritrix的其余部件有: WEB管理控制台:大多数都是单机的WEB应用,内嵌JAVA HTTP 服务器。 操作者可以通过选择Crawler命令来操作控制台。 Crawler命令处理部件:包含足够的信息创建要爬的URI。 Servercache(处理器缓存):存放服务器的持久信息,能够被爬行部件随时 查到,包括IP地址,历史记录,机器人策略。 处理器链: 预取链:主要是做一些准备工作,例如,对处理进行延迟和重新处理,否决随后的操作。 提取链:主要是获得资源,进行DNS转换,填写请求和响应表单 抽取链:当提取完成时,抽取感兴趣的HTML,JavaScript,通常那里有新的也适合的URI,此时URI仅仅被发现,不会被评估 写链:存储爬行结果,返回内容和抽取特性,过滤完存储。 提交链:做最后的维护,例如,测试那些不在范围内的,提交给边界部件 Heritrix 1.0.0包含以下关键特性: 1.用单个爬虫在多个独立的站点一直不断的进行递归的爬。 2。从一个提供的种子进行爬,收集站点内的精确URI,和精确主机。 3。主要是用广度优先算法进行处理。 4。主要部件都是高效的可扩展的 5。良好的配置,包括: a。可设置输出日志,归档文件和临时文件的位置 b。可设置下载的最大字节,最大数量的下载文档,和最大的下载时间。 c。可设置工作线程数量。 d。可设置所利用的带宽的上界。 e。可在设置之后一定时间重新选择。 f。包含一些可设置的过滤机制,表达方式,URI路径深度选择等等。 Heritrix的局限: 1。单实例的爬虫,之间不能进行合作。 2。在有限的机器资源的情况下,却要复杂的操作。 3。只有官方支持,仅仅在Linux上进行了测试。 4。每个爬虫是单独进行工作的,没有对更新进行修订。 5 。在硬件和系统失败时,恢复能力很差。 6。很少的时间用来优化性能。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

minmax329

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值