首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

分享一个自个儿写的爬虫框架

2013-08-01 
分享一个自己写的爬虫框架之前写过一年的垂直爬虫(抓博客什么的),对于各种重复代码很厌倦,后来参考了据说

分享一个自己写的爬虫框架
之前写过一年的垂直爬虫(抓博客什么的),对于各种重复代码很厌倦,后来参考了据说是最优秀的爬虫框架scrapy,写了一个Java版的框架webmagic。
自己用着还是挺顺手的,底层封装了HttpClient、Jsoup、HtmlCleaner,支持多线程,也包括url去重、重试、编码判断什么的。希望能帮到把各位自己手写爬虫代码的同学。
代码不长,自认为模块化的也挺清晰,如果对爬虫感兴趣的可以看一看。
以下是使用webmagic抓取某个iteye博客的所有文章,并提取标题和正文的爬虫代码:

public class IteyeBlogProcessor implements PageProcessor {    private Site site;    @Override    public void process(Page page) {        page.addTargetRequests(page.getHtml().links().regex(".*yanghaoli\\.iteye\\.com/blog/\\d+").all());        page.putField("title",page.getHtml().xpath("//title").toString());        //自动抽取正文,用到了readability        page.putField("content",page.getHtml().smartContent().toString());    }    @Override    public Site getSite() {        if (site == null) {            site = Site.me().setDomain("yanghaoli.iteye.com").addStartUrl("http://yanghaoli.iteye.com/").            .setSleepTime(100).setRetryTimes(3);        }        return site;    }    public static void main(String[] args) {        Spider.create(new IteyeBlogProcessor()).thread(5).pipeline(new FilePipeline()).run();    }}


已收录到oschina:http://www.oschina.net/p/webmagic
github:https://github.com/code4craft/webmagic

热点排行