Heritrix1.14源码分析(5) 如何让Heritrix在Ecplise等IDE下编程启动
来源:互联网 发布:ubuntu安装deepin qq 编辑:程序博客网 时间:2024/06/06 04:20
转自:http://blog.csdn.net/jazywoo123/article/details/8223218
在Heritrix注释里说Heritrix有三种启动方式,但我感觉只有两种:一种是通过tomcat或者JBOSS或者Jetty等Web容器,还有一种自然就是不通过Web直接编程运行。由于第二种方式更适合调试、研究代码,所以这里就介绍下它的编程启动方式吧....这里贴上示例代码以及注释:
- import java.io.File;
- import javax.management.InvalidAttributeValueException;
- import org.archive.crawler.event.CrawlStatusListener;
- import org.archive.crawler.framework.CrawlController;
- import org.archive.crawler.framework.exceptions.InitializationException;
- import org.archive.crawler.settings.XMLSettingsHandler;
- public class StartHeritrixByEclipse {
- public static void main(String[] args) throws InterruptedException {
- String orderFile = "D:/heritrix-jobs/startHeritrixByEclipse/order.xml";//order.xml文件路径
- File file = null; //order.xml文件
- CrawlStatusListener listener = null;//监听器
- XMLSettingsHandler handler = null; //读取order.xml文件的处理器
- CrawlController controller = null; //Heritrix的控制器
- try {
- file=new File(orderFile);
- handler = new XMLSettingsHandler(file);
- handler.initialize();//读取order.xml中的各个配置
- controller = new CrawlController();//
- controller.initialize(handler);//从读取的order.xml中的各个配置来初始化控制器
- if (listener != null) {
- controller.addCrawlStatusListener(listener);//控制器添加监听器
- }
- controller.requestCrawlStart();//开始抓取
- /*
- * 如果Heritrix还一直在运行则等待
- */
- while (true) {
- if (controller.isRunning() == false) {
- break;
- }
- Thread.sleep(1000);
- }
- //如果Heritrix不再运行则停止
- controller.requestCrawlStop();
- } catch (InvalidAttributeValueException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InitializationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
这里可以发现,其实只要知道一个order.xml路径就可以开始抓取了(同时还要seeds.txt种子文件),至于order.xml如何配置可以查看我前面的博客:http://guoyunsky.iteye.com/admin/blogs/613412
0 0
- Heritrix1.14源码分析(5) 如何让Heritrix在Ecplise等IDE下编程启动
- Heritrix1.14源码分析(5) 如何让Heritrix在Ecplise等IDE下编程启动
- Heritrix源码分析(五) 如何让Heritrix在Ecplise等IDE下编程启动
- Heritrix1.14源码分析(13) 如何让Heritrix不间断的抓取
- Heritrix1.14源码分析(13) 如何让Heritrix不间断的抓取
- Heritrix1.14源码分析(9) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
- Heritrix1.14源码分析(9) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
- Heritrix1.14源码分析(6) Heritrix总体介绍
- Heritrix1.14源码分析(6) Heritrix总体介绍
- Heritrix1.14源码分析(11) Heritrix中的URL--CandidateURI和CrawlURI以及如何增加自己的属性
- Heritrix1.14源码分析(11) Heritrix中的URL--CandidateURI和CrawlURI以及如何增加自己的属性
- Heritrix1.14源码分析(7) Heritrix的文件结构分析
- Heritrix1.14源码分析(7) Heritrix的文件结构分析
- Heritrix1.14源码分析(10) Heritrix中的Http Status Code(Http状态码)
- Heritrix1.14源码分析(12) Heritrix的控制中心(大脑)CrawlController
- Heritrix1.14源码分析(10) Heritrix中的Http Status Code(Http状态码)
- Heritrix1.14源码分析(12) Heritrix的控制中心(大脑)CrawlController
- Heritrix源码分析(九) Heritrix的二次抓取以及如何让Heritrix抓取你不想抓取的URL
- iOS软件代码规范
- mysql数据类型分析总结
- dplyr包简单介绍
- Just Works:Jeff Dean斯坦福演讲启示
- hdu 1159 Common Subsequence
- Heritrix1.14源码分析(5) 如何让Heritrix在Ecplise等IDE下编程启动
- 图解:卷帘快门(Rolling shutter)与全局快门(global shutter)的区别
- 设计模式C++学习笔记之十三(Decorator装饰模式)
- Heritrix1.14源码分析(6) Heritrix总体介绍
- ==与equals的区别
- Failed - Error on Table mi_oauth - 1064 - You have an error in your SQL syntax;
- 【leetcode】Linked List Cycle II
- Mybatis中的resultType和resultMap
- UTC时间与北京时间的关系