WebCollector爬虫的数据持久化

WebCollector爬虫并不像scrapy那样,提供一个pipeline这样的数据持久化接口。

用户通过自定义WebCollector中BreadthCrawler中的visit方法,来定义对每个页面的操作。同样,数据的持久化,也是在这里让用户自定义的。

例如下面这个示例,展示如何将网页的源码,保存到数据库中:


import cn.edu.hfut.dmic.webcollector.crawler.BreadthCrawler;
import cn.edu.hfut.dmic.webcollector.model.Page;


public class MyCrawler extends BreadthCrawler{

    /*在visit方法里定义自己的操作*/
    @Override
    public void visit(Page page) {
        //在这里加入数据持久化的代码
        //例如用户自定义了一个类DBHelper,提供操作mysql的方法(添加删除数据)
        //这里就不给出DBHelper类了,用户可以简单实现一个),
        //假设DBHelper有个static方法insert(String url,String html)
        //insert方法将网页的url和源码提交到mysql数据库
        DBHelper.insert(page.getUrl(),page.getHtml());
    }
    
    public static void main(String[] args) throws Exception{
        MyCrawler crawler=new MyCrawler();
        
        /*配置爬取合肥工业大学网站*/
        crawler.addSeed("http://www.hfut.edu.cn/ch/");
        crawler.addRegex("http://.*hfut\\.edu\\.cn/.*");
        
        /*进行深度为5的爬取*/
        crawler.start(5);
    }
  
}


你可能感兴趣的:(数据库,爬虫,持久化,java爬虫,webcollector)