本文内容:在MyEclipse7.0下配置Heritrix1.14.3,并修改源代码实现抓取URL中含有指定字符串的所有网页。并实现多线程下载。 1、首先下载heritrix-1.14.3.zip和heritrix-1.14.3-src.zip。将其全部解压到当前文件夹 \eritrix-1.14.3-src\和\heritrix-1.14.3\。 2、解压heritrix-1.14.3中的heritrix-1.14.3.jar,得到目录:heritrix-1.14.3。 3、将以上目录的所有文件拷贝到heritrix-1.14.3-src\heritrix-1.14.3\src\java下。 4、将\heritrix-1.14.3-src\heritrix-1.14.3下的lib目录拷贝到heritrix-1.14.3-src\heritrix-1.14.3\src\java下。 5、将heritrix-1.14.3-src\heritrix-1.14.3\src下的webapps目录拷贝到heritrix-1.14.3-src\heritrix-1.14.3\src\java下,此时工程目录基本完整。 6、在MyEclipse中新建一个Java Project,选择从现有源代码建立,源代码路径指向:heritrix-1.14.3-src\heritrix-1.14.3\src\java,命名为Heritrix,点击OK。 7、接下来将jar包导入项目。右键单击Heritrix项目,选择Build Path->Configure Build Path,选中 Libraries选项,选择Add External JARS,将lib下的所有jar包加入到Build Path。 8、在Window->Preference->Java->Compiler中,将Complier compliance level设为5.0,目的是为了使Heritrix编译通过。否则Eclipse可能不认assert这个关键字。 9、设置项目根目录下的heritrix.properties文件,设置:"heritrix.cmdline.admin=admin:admin",也就是设置heritrix控制台登录的用户名和密码。找到/heritrix/org.archive.crawler/Heritrix.java右键点击,选择Run As Java Application,(不建议此时运行,建议修改源码完毕后再运行)正常运行时输出如下信息: 10、在浏览器中输入http://localhost:8080/,用户名、密码都是"admin",登陆之后就可以正常使用了,至此配置完毕。 下面修改Heritrix部分源码,达到抓取URL中含有指定字符串的目的:如抓取URL字符串中含有"dlut"的所有网页。 1、首先打开Heritrix/org.archive.crawler.postprocessor/FrontierScheduler.java,里面有一个方法:protected void schedule(CandidateURI caUri);这个方法是直接将当前的候选连接加入到抓取队列当中了。因此我们可以构造一个FrontierScheduler的派生类,对候选连接的内容做一些判断,保证抓取到的连接都是含有"dlut"的网址。 2、新建一个类,叫做FrontierSchedulerForDlut 所属的包为:org.archive.crawler.postprocessor。单击Finish。代码如下: package org.archive.crawler.postprocessor; 这里我们只抓取网页,并且抓取的网页中须含有dlut。 4、取消robots.txt的限制:找到org.archive.crawler.prefetch保重的PreconditionEnforcer这个类,将方法considerRobotsPreconditi 5、至此,可以实现抓取URL中含有"dlut"的所有网页了,但为了使程序多线程运行,还需修改HostNamesQueueAssignment public |
|
来自: 旭龙 > 《Heritrix》