一、 Heritrix的安装与配置
1. 在Eclipse中新建Java Project,名称为Heritrix,同时将Heritrix解压jar包中的lib文件夹拖放到新建的Heritrix下;并将lib文件夹下的所有jar文件,加到项目的classpath路径下;
2. 将位于Heritrix源代码文件夹下的src\java\的org和st两个文件夹直接拖进Heritrix工程下的src下,如果出现编译错误,要把编译的JDK设置成1.5版本以上;
3. 将Heritrix源代码文件夹下的src\conf\下的所有文件和文件夹拖至Heritrix工程下的src内,在src内找到heritrix.properties并打开,在“heritrix.cmdline.admin=”后边添加用户和密码,格式如“admin:admin”,在登录Heritrix的管理界面时需要此用户名和密码;
4. 将Heritrix源代码文件夹下的src下的其他文件夹,即除conf和java两个文件夹以外的所有文件夹,拖至Heritrix项目工程下,至此,Heritrix就可以运行了,运行Heritrix,右击Run As,选择run configurations,Project项选择Heritrix,Main class选择org.archive.crawler.Heritrix,运行即可;
5. 打开浏览器,并在地址栏中输入http://localhost:8080,便可以看到Heritrix的登录界面,在Username中填入admin,在Password中填入admin,单击Login就可以看到Heritrix控制台界面。
二、 设置Heritrix抓取任务
1. 首先要为Heritrix定制一个任务(Job),单击Job,选择With defaults之后,在Name of new job中输入此次任务的名称、描述以及种子(Seeds),种子就是Heritrix的开始抓取的页面,通常会选取一些门户页面或者导航页面作为Seeds,因为这样的页面里链接很多,是某个网站的入口,从这里实行抓取才能最大限度地遍历整个网站,然后单击Modules,在这个页面中要为此次任务设置各个处理模块。
2. 在Select Crawl Scope标题下,在Crawl Scope选项中,选择org.archive.crawler.scope.BroadScope,并单击右边的Change按钮。
3. 在Select URI Frontier标题下,在URI Frontier选项中,选择org.archive.crawler.frontier.BdbFrontier,并单击右边的Change按钮。
4. 在Select Pre Processors标题下,选择org.archive.crawler.prefetch.Preselector和org.archive.crawler.prefetch.PreconditionEnforcer,并单击右边的Add按钮。
5. 在Select Fetchers标题下,选择org.archive.crawler.fetcher.FetchDNS和org.archive.crawler.fetcher.FetchHTTP,并单击右边的Add按钮。
6. 在Select Extractors标题下,选择org.archive.crawler.extractor.ExtractorHTTP和org.archive.crawler.extractor.ExtractorHTML,并单击右边的Add按钮。
7. 在Select Writers标题下,选择org.archive.crawler.writer.MirrorWriterProcessor,并单击右边的Add按钮。
8. 在Select Post Processor标题下,选择org.archive.crawler.postprocessor.CrawlStateUpdater、org.archive.crawler.postprocessor.LinksScoper和org.archive.crawler.postprocessor.FrontierScheduler,并单击右边的Add按钮。
9. 设置好Modules后,设置Settings,并单击Settings。这里只需要修改两个地方,user-agent和from,可修改成任意值,全部设置好后,单击上方的Submit Job,这时,就新建好了一个Job,单击Console,回到控制页面,单击Start即可运行Heritrix。单击Start之后,刷新一下,就能看到运行状态。当Heritrix运行之后,我们在Heritrix的项目文件夹下可以看到一个jobs文件夹,打开后便是Heritrix抓取的网页。
三、 Heritrix源码修改
1. 如果我们希望对Heritrix进行定制,完成更加复杂的搜索任务,可以选择继承FrontierScheduler,并覆写schedule这个方法,可以在这个方法内部加入一些对链接内容进行判断的逻辑,以保证抓取的链接都是符合自己要求的。
在配置好了之后,如果你的种子设置的是www.shu.edu.cn,那么在你爬去完成之后,可以参照我提供的测试war包,进行测试。
地址是:http://download.csdn.net/detail/shijiebei2009/6705663
注意,在war包中,lib下有个PreProcess.jar文件,里面的配置文件需要修改成你自己爬去下来的文件路径