您的位置:首页 > 编程语言 > Java开发

如何在后台运行Heritrix

2014-11-22 13:46 267 查看
1.首先在jobs文件夹下创建一个新文件夹并在其中加入order.xml和seed.txt文件,这两个文件可从其他爬取任务文件夹中复制。


2.在src包下加入这个类:

     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 = "......../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();  

            }  

      

        }  

      
    } 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Heritrix eclipse