基于Java的Heritrix爬取网页

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

(转载请注明出处)

准备
环境:eclipse Mars.2 Release (4.5.2)
抓取工具:Heritrix1.14.4
前提条件:已经在eclipse中搭建好了Heritrix环境

参考:http://blog.csdn.net/wy_kath/article/details/9385015


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目录下,重新启动就可以看到下图了:
这里写图片描述
3.配置
基于Java的Heritrix爬取网页_第1张图片
安装完毕。

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

开始任务:
代码编写:
1.设计网页抓取的Extractor类
新建包:my.extractor
在该包中新建类文件:Mobile163Extractor,代码见文末
2.设计网页抓取的Frontier类扩展。
新建包:my.postprocessor
在该包中新建类文件:FrontierSchedulerFor163Mobile,代码见文末
3.文件配置:
在processor中添加所编写的扩展类的信息:
my.extractor.Mobile163Extractor|Mobile163Extractor
my.postprocessor.FrontierSchedulerFor163Mobile|FrontierSchedulerFor163Mobile
如下图所示:
基于Java的Heritrix爬取网页_第2张图片
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.环境测试:
这里写图片描述
1.设置种子Seeds:
即你要抓取的网页URL,越精准越好。
2.设置处理链
以下两个处理链需更改,其余的默认即可。
基于Java的Heritrix爬取网页_第3张图片
基于Java的Heritrix爬取网页_第4张图片
3.属性设置:
以下属性更改,其余的默认即可。
这里写图片描述
改为:
这里写图片描述
5.Start运行
基于Java的Heritrix爬取网页_第5张图片
6.运行状态分析

基于Java的Heritrix爬取网页_第6张图片

抓取结果分析:
可以看到设置的种子成功抓取:
基于Java的Heritrix爬取网页_第7张图片
方框中的6个文件记录了本次抓取结果中的相关数据:
(对应的目录是jobs下的任务)
这里写图片描述
下面对着6个文件做一下简单分析:
(1)Crack order:
主要记录的是本次抓取任务的相关设置
这里写图片描述
(2)Crack Report
抓取任务状态描述,以及抓取到的数据归类分析
基于Java的Heritrix爬取网页_第8张图片
(3)Crawl.log
这里写图片描述
Tip:如何将抓取到的网页的各种镜像设定存储到磁盘上?
方法:在设置处理器链的时候,有一个Writer,将其设定为:
org.rachive.craweler.prefetch.Preselector,这样一来将会用镜像Mirror的方式来存储抓取结果,抓取任务结束后,可以看到好多“分类文件包”。

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

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

你可能感兴趣的:(网页抓取技术,Heritrix,Heritrix-+,eclipse,网页抓取,处理链扩展)