推荐一个常年霸榜的爬虫框架,你用过么?
Posted 程序员狗哥
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐一个常年霸榜的爬虫框架,你用过么?相关的知识,希望对你有一定的参考价值。
爬虫的项目,狗哥做过不少,也用过很多开源的技术,最让狗哥中意的只有一个:webmagic,其他的相对于webmagic还是弱一些,狗哥就不介绍了。
WebMagic是一个简单灵活的Java爬虫框架,基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。
webmagic一些优秀的特性
码云上面最有价值的开源项目
简单的API,可快速上手
模块化的结构,可轻松扩展
提供多线程和分布式支持
完善的文档,这个比较关键,基于这些文档,基本上1个小时之内就可以上手开发
解析内容:支持jquery语法、xpath语法、正则表达式;对于熟悉jquery的朋友来说,用起来会特别爽
项目源码质量比较高,阅读起来也是行云流畅,对于想扩展的小伙伴来说是非常便利的
下面是webmagic一个爬虫案例,代码也就几行,还有比这更简单的?
public class GithubRepoPageProcessor implements PageProcessor {
private Site site = Site.me().setRetryTimes(3).setSleepTime(1000).setTimeOut(10000);
@Override
public void process(Page page) {
page.addTargetRequests(page.gethtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all());
page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-])").all());
page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString());
page.putField("name", page.getHtml().xpath("//h1[@class='entry-title public']/strong/a/text()").toString());
if (page.getResultItems().get("name")==null){
//skip this page
page.setSkip(true);
}
page.putField("readme", page.getHtml().xpath("//div[@id='readme']/tidyText()"));
}
@Override
public Site getSite() {
return site;
}
public static void main(String[] args) {
Spider.create(new GithubRepoPageProcessor()).addUrl("https://github.com/code4craft").thread(5).run();
}
}
WebMagic官网
http://webmagic.io/
上几个图,大家感受一下
帮助文档分中英文版
目前这个项目放在码云上面
https://gitee.com/flashsword20/webmagic
start人数和fork人数都是非常高的
更多信息,狗哥就不介绍了,官网上面都有详细说明,如果你要做爬虫相关的项目,webmagic无疑应该是你的首选!
对爬虫有兴趣的,可以加狗哥微信:spring888java
感谢阅读,狗哥致力于为大家推荐各种好用、好玩的东西,也希望大家能支撑一下狗哥,帮忙转发一下,让更多好友一起成长!
【扫描关注狗哥】
以上是关于推荐一个常年霸榜的爬虫框架,你用过么?的主要内容,如果未能解决你的问题,请参考以下文章