Heritrix源码分析(五) 如何让Heritrix在Ecplise等IDE下编程启动

本文介绍了Heritrix爬虫系统的非Web容器启动方法,并提供了一个示例代码,该方法适用于调试和研究Heritrix代码。

在Heritrix注释里说Heritrix有三种启动方式,但我感觉只有两种:一种是通过tomcat或者JBOSS或者Jetty等Web容器,还有一种自然就是不通过Web直接编程运行。由于第二种方式更适合调试、研究代码,所以这里就介绍下它的编程启动方式吧....这里贴上示例代码以及注释:

Java代码 收藏代码
  1. importjava.io.File;
  2. importjavax.management.InvalidAttributeValueException;
  3. importorg.archive.crawler.event.CrawlStatusListener;
  4. importorg.archive.crawler.framework.CrawlController;
  5. importorg.archive.crawler.framework.exceptions.InitializationException;
  6. importorg.archive.crawler.settings.XMLSettingsHandler;
  7. publicclassStartHeritrixByEclipse{
  8. publicstaticvoidmain(String[]args)throwsInterruptedException{
  9. StringorderFile="D:/heritrix-jobs/startHeritrixByEclipse/order.xml";//order.xml文件路径
  10. Filefile=null;//order.xml文件
  11. CrawlStatusListenerlistener=null;//监听器
  12. XMLSettingsHandlerhandler=null;//读取order.xml文件的处理器
  13. CrawlControllercontroller=null;//Heritrix的控制器
  14. try{
  15. file=newFile(orderFile);
  16. handler=newXMLSettingsHandler(file);
  17. handler.initialize();//读取order.xml中的各个配置
  18. controller=newCrawlController();//
  19. controller.initialize(handler);//从读取的order.xml中的各个配置来初始化控制器
  20. if(listener!=null){
  21. controller.addCrawlStatusListener(listener);//控制器添加监听器
  22. }
  23. controller.requestCrawlStart();//开始抓取
  24. /*
  25. *如果Heritrix还一直在运行则等待
  26. */
  27. while(true){
  28. if(controller.isRunning()==false){
  29. break;
  30. }
  31. Thread.sleep(1000);
  32. }
  33. //如果Heritrix不再运行则停止
  34. controller.requestCrawlStop();
  35. }catch(InvalidAttributeValueExceptione){
  36. //TODOAuto-generatedcatchblock
  37. e.printStackTrace();
  38. }catch(InitializationExceptione){
  39. //TODOAuto-generatedcatchblock
  40. e.printStackTrace();
  41. }catch(InterruptedExceptione){
  42. //TODOAuto-generatedcatchblock
  43. e.printStackTrace();
  44. }
  45. }
  46. }

这里可以发现,其实只要知道一个order.xml路径就可以开始抓取了(同时还要seeds.txt种子文件),至于order.xml如何配置可以查看我前面的博客:http://guoyunsky.iteye.com/admin/blogs/613412

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值