Heritrix爬虫方案

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

还没怎么接触到,待研究

28

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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

minmax329

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

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

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

打赏作者

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

抵扣说明:

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

余额充值