heritrix java_基于Java的Heritrix爬取网页

任务:重写一些定制扩展类来实现“网易手机频道”网页的抓取任务。

(转载请注明出处)

准备

环境:eclipse Mars.2 Release (4.5.2)

抓取工具:Heritrix1.14.4

前提条件:已经在eclipse中搭建好了Heritrix环境

Tomcat PluginV 插件的安装:

PS:安装TomcatPlugin真是太坑了,一定要注意版本的问题,目前最新版本为3.3.1(好像很长时间都没有更新了),本人亲测可以在eclipse4.5上面成功安装,之前由于用3.2 和3.3试了很多次都不成功,一度怀疑自己的智商,Hehe。详细匹配关系见官网:

Tomcat PluginV 插件官网: http://www.eclipsetotale.com/tomcatPlugin.html

安装步骤:

注:本人安装的是3.3.1版本,3.2与3.3的解压之后是一大堆东西,而3.3.1解压之后只有一个 Jar包,请注意。

1.下载插件,并解压

2.解压之后是一个Jar包,直接将其放在eclipse的plugins目录下,重新启动就可以看到下图了:

f6da7fbadbffbbaa0ffa7ae5499f50d0.png

3.配置

780218550dc300a79d6e7eff31282722.png

安装完毕。

———————————————————————————————————————————

开始任务:

代码编写:

1.设计网页抓取的Extractor类

新建包:my.extractor

在该包中新建类文件:Mobile163Extractor,代码见文末

2.设计网页抓取的Frontier类扩展。

新建包:my.postprocessor

在该包中新建类文件:FrontierSchedulerFor163Mobile,代码见文末

3.文件配置:

在processor中添加所编写的扩展类的信息:

my.extractor.Mobile163Extractor|Mobile163Extractor

my.postprocessor.FrontierSchedulerFor163Mobile|FrontierSchedulerFor163Mobile

如下图所示:

ddbf32e9b55a1ad76a11111c7b117f54.png

4 .配置ClassPath

(该步骤非常关键,如果不做的话,将会导致在设置处理器链时没有Add/Change按钮及相应的下拉菜单),过程如下:

右键Heritrix->Run As->Run configuratins…..->classpath->user Entries->Advanced->Add External Folder,找到modules的上一级目录conf将其加入即可。

配置完成后最好重新启动。

注:关于该步骤的原理分析,想要学习的话参照下面网址,几乎所有所有的帖子博客都在讲步骤,这个却是我见过分析并解决问题的,推荐大家看一下,这样会有更深入的理解,(虽然版面乱的一塌糊涂):http://www.tc5u.com/java/1938960.htm

开始抓取任务流程:

0.环境测试:

9c54b2093a5e700e3489b7465fb75f85.png

1.设置种子Seeds:

即你要抓取的网页URL,越精准越好。

2.设置处理链

以下两个处理链需更改,其余的默认即可。

c97c8b0e48d792f3957dfa2fdf854d25.png

c0d9a350431a3c1adb31dcfee90da4bd.png

3.属性设置:

以下属性更改,其余的默认即可。

6de248a8d3ff85153c095b6e03bcd2cd.png

改为:

3219bcdc85b4000548c9e4c06efee55f.png

5.Start运行

9f7ace2762a5209b7f04b5741e1eaf5b.png

6.运行状态分析

6be5b94251aff4f5eb2da555808d0ed7.png

抓取结果分析:

可以看到设置的种子成功抓取:

f0204b49cf8509796b0e223db9caf2a7.png

方框中的6个文件记录了本次抓取结果中的相关数据:

(对应的目录是jobs下的任务)

85f0a02c699c51d2b96b6c784b22c8ba.png

下面对着6个文件做一下简单分析:

(1)Crack order:

主要记录的是本次抓取任务的相关设置

128e071470f82a9ab998f6dfef3008f5.png

(2)Crack Report

抓取任务状态描述,以及抓取到的数据归类分析

6ce892e3621b4cc995ed9aa15eb09a5d.png

(3)Crawl.log

98d65b97fd7376d4e5018b6605b9f919.png

Tip:如何将抓取到的网页的各种镜像设定存储到磁盘上?

方法:在设置处理器链的时候,有一个Writer,将其设定为:

org.rachive.craweler.prefetch.Preselector,这样一来将会用镜像Mirror的方式来存储抓取结果,抓取任务结束后,可以看到好多“分类文件包”。

(PS:之前没有注意到这个问题)

下一节将会对Heritrix的架构,原理做以简单的分析、介绍

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值