Heritrix 是一个由 java 开发的、开源的网络爬虫,用户可以使用它来从网上抓取想要的资源。其最出色之处在于它良好的可扩展性,方便用户实现自己的抓取逻辑。
首先要去官网下载最新版本的heritrix。下载地址为:http://sourceforge.net/project/showfiles.php?group_id=73833&package_id=73980,选择文件注意为zip后缀格式的,gz格式为linux下文件。选择这两个文件heritrix-1.14.4-src.zip heritrix-1.14.4.zip 下载。
解压好两个压缩包。
在Eclipse中新建一个Java Project工程(注意:一定是Java Project的工程,不是WebProject工程),工程名称为Heritrix。(名字可随便起)。以我为例,对应地,工程Heritrix在D:/study/Java/workspace下面。
可以在目录D:/study/Java/workspace/Heritrix下面看到:两个工程属性文件.classpath和.project、两个文件目录bin和src。删除文件目录bin和src。
(1) 将目录heritrix-1.14.4-src/heritrix-1.14.4/src/java/下面的三个目录:org、com、st一起拷贝到新建工程Heritrix根目录下面(绝对路径为D:/study/Java/workspace/Heritrix)。
(2) 将目录heritrix-1.14.4-src/heritrix-1.14.4/src/conf/下面的:三个目录(包括:modules、profiles、selftest),以及四个文件(包括:heritrix.properties、jmxremote.password.template、heritrix.cacerts、jndi.properties)一起拷贝到新建的工程Heritrix目录下面。
(3) 将目录heritrix-1.14.4-src/heritrix-1.14.4/src/resources拷贝到新建的工程Heritrix根目录下。
(4) 将目录heritrix-1.14.4/heritrix-1.14.4/下面的webapps目录拷贝到新建工程Heritrix根目录下面,这里,webapps目录下面有两个WAR包(即admin.war和selftest.war)。
(5)将heritrix-1.14.4/heritrix-1.14.4/下的lib文件夹拷贝到工程下。
做好了以上,在Eclipse中Heritrix项目右击刷新一下,就可以看到刚才所复制的包了。
3、在Eclipse中修改项目conf下heritrix.properties文件(
修改内容至少两个两个地方:
@VERSION@ 改为 1.14.3
heritrix.cmdline.admin = 改为 heritrix.cmdline.admin = admin:xxx(这里是用户名与密码,可任读者设定.)
heritrix.cmdline.port = 改为 heritrix.cmdline.port = 8080 (注默认是8080的如果你已占用了这个端口号的话,要设另一个才行)
配置Heritrix.properties,主要配置四项:如下红色部分所示
##############################################################################
# Properties with prefixes 'heritrix.', 'org.archive.', or 'system.'prefix
# get copied into System.properties on startup so available via
# System.getProperties. (For 'system.' properties, that prefix isstripped.
# (See Heritrix.loadProperties()).
# Version is filled in by the maven.xml pregoal. It copies here theproject
# currentVersion property.
heritrix.version = 1.14.3
# Location of the heritrix jobs directory.
heritrix.jobsdir = jobs
# Default commandline startup values.
# Below values are used if unspecified on the command line.
heritrix.cmdline.admin = admin:admin
heritrix.cmdline.port = 8080
heritrix.cmdline.run = false
heritrix.cmdline.nowui = false
heritrix.cmdline.order =
heritrix.cmdline.jmxserver = false
heritrix.cmdline.jmxserver.port = 8081
##############################################################################
改好了以上的,别忘了保存一下哦.
上面四行红色标识的代码行,一般来说,需要修改。
第一行,heritrix.version指定了Heritrix的版本号,因为我们测试的是版本号为1.14.3,修改为:
heritrix.version = 1.14.3
第二行,heritrix.jobsdir指定了Heritrix在执行抓取任务时,抓取到的内容存放的目录,默认在工程下面的jobs目录下面。
第三行,heritrix.cmdline.admin指定了登录WebUI时使用的帐号,默认为空,可以自己随意设定,设定需要按照一定的格式(用户名:密码),我们修改为:
heritrix.cmdline.admin = admin:admin
其中,用户名和密码使用“:”分隔。
第四行,heritrix.cmdline.port指定了运行Heritrix后台程序,监听的WebUI使用的端口号,默认为8080端口,可以设置一个当前没有占用的端口号,比如我们可以修改为:
heritrix.cmdline.port = 9090
4、在项目Heritrix上右键选择构建路径->配置构建路径->库选项卡->添加Jar,将lib目录下的所有.jar文件选中,点击完成!
5.修改D:/study/Java/workspace/Heritrix下面的.classpath文件
将<classpathentrykind="src" path="src"/>修改为<classpathentry kind="src" path=""/>
(kind属性指定工程中显示的资源目录,path指定了在该path(Eclipse默认为src)下的资源目录都呈包结构组织。)
切换到eclipse窗口下,刷新下工程,发现会报错找不到类 sun.net.www.protocol.file.FileURLConnection。这是因为sun包是受保护的包,默认只有sun公司的软件才能使用。Eclipse会报错,把对保护使用waring就可以了。修改方式:
Windows -> Preferences -> Java ->Compiler -> Errors/Warnings-> Deprecated and trstricted API ->Forbidden reference (access rules): -> change to warning
然后刷新就OK了。
6.以Java Application方式运行org.archive.crawler包中的Heritrix.java
7.登录WebUI:在浏览器地址栏中键入地址链接 http://localhost:8080(端口号为你所设定的),就可以看到WebUI登录界面.