Heritrix是一个基于Java的开源的具有高扩展性高灵活性的Web爬虫开源项目。
Heritrix的几大亮点如下:
1.开源,如果你想了解爬虫相关知识,阅读Heritrix源码是不二之选。
2.抓取性能高,配置灵活
3.扩展性很好,便于进行二次开发
不过Heritrix让我唯一遗憾的是不支持分布式抓取,不过仍然不能否定Heritrix是一款不错的爬虫开源框架。,值得我们去学习它。
这里我以Heritrix1.14.4版本为例进行讲解Heritrix环境的搭建。其实Heritrix目前版本已经更新到了3.2.0,但Heritrix1.14.4版本是1.x系列的最后一个封顶版本,是最为经典的一个版本,所以我们还是先从低版本开始学习,然后再研究3.x版本会比较轻松。
Heritrix下载地址如下:
http://sourceforge.net/projects/archive-crawler/files/?source=navbar



下载完成后,你将会得到两个zip压缩包文件,heritrix-1.14.4-src.zip和heritrix-1.14.4.zip。请解压heritrix-1.14.4.zip到任意盘符,这里我直接解压到E盘。解压后得到如图的目录结构:

目录结构说明如下:
bin: Heritrix的一些脚本文件
conf:Heritrix的配置文件,用于控制Heritrix的爬取行为
docs:Heritrix的API文档,HTML格式
lib:Heritrix依赖的jar文件
webapps:Heritrix的web程序,其中admin.war是Heritrix的web后台程序
heritrix-1.14.4.jar是Heritrix的启动执行文件,只要你的.jar后缀文件与java.exe程序关联了,你双击heritrix-1.14.4.jar就会启动Heritrix,Heritrix默认自带了Jetty容器。但官方打包的heritrix-1.14.4.jar文件里的MANIFEST.MF文件有点小问题,它没有添加lib依赖,所以我修改了它的MANIFEST.MF清单文件。heritrix-1.14.4.jar的MANIFEST.MF清单文件查看方法如图:




修改之前MANIFEST.MF文件的内容如下:
- Manifest-Version: 1.0
- Ant-Version: Apache Ant 1.5.3
- Created-By: Apache Maven
- Built-By: stack
- Package: org.archive
- Build-Jdk: 1.6.0_13
- Extension-Name: heritrix
- Specification-Title: An open-source, extensible, web-scale crawler.
- Specification-Vendor: Internet Archive
- Implementation-Title: org.archive
- Implementation-Vendor: Internet Archive
- Implementation-Version: 1.14.4
- Main-Class: org.archive.crawler.Heritrix
修改之后MANIFEST.MF文件内容如下:
- Manifest-Version: 1.0
- Ant-Version: Apache Ant 1.5.3
- Created-By: Apache Maven
- Built-By: stack
- Package: org.archive
- Build-Jdk: 1.6.0_13
- Extension-Name: heritrix
- Specification-Title: An open-source, extensible, web-scale crawler.
- Specification-Vendor: Internet Archive
- Implementation-Title: org.archive
- Implementation-Vendor: Internet Archive
- Implementation-Version: 1.14.4
- Main-Class: org.archive.crawler.Heritrix
- Class-Path: lib/ant-1.6.2.jar
- lib/ant-1.6.2.jar
- lib/bsh-2.0b4.jar
- lib/commons-cli-1.0.jar
- lib/commons-codec-1.3.jar
- lib/commons-collections-3.1.jar
- lib/commons-httpclient-3.1.jar
- lib/commons-io-1.3.1.jar
- lib/commons-lang-2.3.jar
- lib/commons-logging-1.0.4.jar
- lib/commons-net-2.0.jar
- lib/commons-pool-1.3.jar
- lib/dnsjava-2.0.3.jar
- lib/fastutil-5.0.3-heritrix-subset-1.0.jar
- lib/itext-1.2.0.jar
- lib/jasper-compiler-tomcat-4.1.30.jar
- lib/jasper-runtime-tomcat-4.1.30.jar
- lib/javaswf-CVS-SNAPSHOT-1.jar
- lib/je-3.3.82.jar
- lib/jericho-html-2.6.jar
- lib/jets3t-0.5.0.jar
- lib/jetty-4.2.23.jar
- lib/joda-time-1.6.jar
- lib/junit-3.8.2.jar
- lib/libidn-0.5.9.jar
- lib/mg4j-1.0.1.jar
- lib/poi-2.0-RC1-20031102.jar
- lib/poi-scratchpad-2.0-RC1-20031102.jar
- lib/servlet-tomcat-4.1.30.jar
至于MANIFEST.MF文件如何编写,MANIFEST.MF文件有什么编写规范,请自己Google学习,这里不做过多赘述。
MANIFEST.MF清单文件编写好了之后,我们需要把它覆盖到heritrix-1.14.4.jar下,如图:


然后我们就能dos命令行下切到E:\heritrix-1.14.4路径下,然后java –jar heritrix-1.14.4.jar来启动Heritrix,但为了方便(不想每次都敲这些命令),我们可以写个bat批处理文件,如图:

然后用文本编辑软件进行编辑,编辑内容如下:
- %~d0
- cd %~dp0
- java -Xmx512m -Dheritrix.home=./ -jar heritrix-1.14.4.jar
%~d0表示当前bat文件所在目录
heritrix.home表示heritrix的安装根目录
然后我们就可以双击startup.bat文件来启动Heritrix,双击后dos窗口一闪而过,说明Heritrix启动失败了。这是因为我们还需要对Heritrix的配置文件进行一些修改。打开E:\heritrix-1.14.4\conf目录下的heritrix.properties配置进行编辑,如图:

然后我们再次启动Heritrix,会看到如图信息:

至此,Heritrix1.14.4就环境搭建成功了,打开浏览器,输入http://localhost:6789访问Heritrix的Web后台,你将看到如图的登录界面:

登录成功后界面如图:

至于如何通过Heritrix Web后台界面创建抓取任务进行数据抓取,留到下一篇来讲解,今天就到这里。
益达的GitHub地址:请猛戳我,用力,吃点劲儿!!!
益达的新浪微博:看这里,看这里
益达的技术交流社区:码农们,I want you!!!
益达Q-Q: 7-3-6-0-3-1-3-0-5
益达的Q-Q群: 1-0-5-0-9-8-8-0-6
转载:http://iamyida.iteye.com/blog/2236743