垂直爬虫 WebMagic

垂直爬虫 WebMagic

Apache
Java 查看源码»
跨平台
2013-06-13
黄亿华

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。

以下是爬取oschina博客的一段代码:

Spider.create(new SimplePageProcessor("http://my.oschina.net/",
"http://my.oschina.net/*/blog/*")).thread(5).run();

webmagic采用完全模块化的设计,功能覆盖整个爬虫的生命周期(链接提取、页面下载、内容抽取、持久化),支持多线程抓取,分布式抓取,并支持自动重试、自定义UA/cookie等功能。

webmagic包含强大的页面抽取功能,开发者可以便捷的使用css selector、xpath和正则表达式进行链接和内容的提取,支持多个选择器链式调用。例如:

String extractResult = Html.create(html).$("div.body")
.xpath("//a/@href").regex(".*blog.*").toString();

webmagic也可以很方便的作为一个模块,嵌入Java项目中运行。webmagic的使用可以参考:oschina openapi 应用:博客搬家

webmagic的使用文档:http://webmagic.io/docs/

webmagic的设计文档:webmagic的设计机制及原理-如何开发一个Java爬虫

加载中

评论(82)

此岸非左岸
SeleniumDownloader如何设置网络代理
独孤晓林
官网挂了????
osc4windy
osc4windy
log4j:WARN No appenders could be found for logger (us.codecraft.webmagic.scheduler.QueueScheduler). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 如何解决
qwfys
qwfys
不错。
小黑小别姬
小黑小别姬
突然想起来8次相亲的故事
数据抓取
数据抓取
寻找一个小团队做新闻客户端数据抓取,感兴趣可微信联系zx_wander
1308706231
1308706231
网站cookie每次请求修改一次如何解决
jcbms2017
jcbms2017
黄师傅,我觉得这个爬虫的添加cookie用起来不太方便啊,平常的cookie都是从浏览器copy或者模拟登录时获取到的一个长字符串,在webmaigic里面我们要拆开成键值对才能添加进去,黄师傅不如再封装个直接添加字符串cookie的方法啊,为什么要让Spier类实现runnable接口啊?
n
neverused
我大概看了一下QueuedScheduler,发现逻辑是如果不重或shouldReserve就放进一个LinkedQueue。如果多个线程同时放一个url,同时发现不重。将会放入一个url同时放入多次。这个是不是一个bug,我是渣渣,也不是很确定有没有这个问题。
戴帽子的狗
戴帽子的狗
我瞎以为这里是搜索框...怎么删啊.. #WebMagic#

WebMagic 0.7.3 版本发布,Java 爬虫框架

WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。 本次更新增加了Downloader模块的一些功能。 #609 修复HttpRequestBody没有默认构造函数导致...

2017/07/31 09:54

WebMagic 0.7.2 版本发布,Java 爬虫框架

此次更新修复了0.7.x版本的若干bug。 #594 Request中的HttpRequestBody实现序列化接口。 #596 修复0.7.0开始代理认证无法正确使用的问题。 #601 完善页面状态异常时的错误信息。 #605 修复0...

2017/06/18 20:01

WebMagic 0.7.1 版本发布,Java 爬虫框架

此次更新包含几个比较大的Bugfix,以及一些遗留问题的改进。 修复0.7.0引入的RedisScheduler无法使用的bug。#583 注解模式的JsonPath默认会指定source为RawText,不再会出现自动为头尾加了<...

2017/06/04 18:26

WebMagic 0.7.0 版本发布,Java 爬虫框架

WebMagic 0.7.0 版本发布了,此次更新重写了HttpClientDownloader,完善了POST等其他Http Method的支持,并重写了代理API,更加简单和便于扩展。 POST支持 新的POST API,支持各种RequestBo...

2017/05/29 21:36

WebMagic 0.6.1 版本发布,Java 爬虫框架

WebMagic 0.6.1 版本发布了。本次更新修复了一些 0.6.0 的问题和一些小优化。 修改默认策略为信任所有 https 证书 #444 @ckex 修复使用 startUrls 添加 url 时,如果使用了 cookie 会出现空指...

2017/01/21 22:10

WebMagic 0.6.0 版本发布,Java爬虫框架

WebMagic 0.6.0 版本发布了。 此次更新主要是一些依赖包的升级和bugfix。 #290 代理增加用户名密码认证 @hepan #194 重构代理池部分代码,支持自定义代理池 @EdwardsBean #314 修复低版本jso...

2016/12/18 23:45

WebMagic 0.5.3 版本发布,Java爬虫框架

时隔一年半,作者终于回归了。这个版本主要解决之前的一些BUG,后续会慢慢的继续完善功能。 升级Xsoup到0.3.1,支持//div[contains(@id,'te')]语法。 #245 升级Jsoup到1.8.3,解决n-th sele...

2016/01/22 09:49

WebMagic 0.5.2发布,Java爬虫框架

此次主要包括对于Selector部分的重构,以及一些功能的完善和一些Bugfix。WebMagic官网(http://webmagic.io/)已同步更新:。 重构了Selector部分,使得结构更清晰,并且能够更好的支持链式的X...

2014/06/05 10:05

WebMagic 0.5.1 发布,Java 爬虫框架

此次更新主要包括Scheduler的一些改动,对于自己定制过Scheduler的用户,强烈推荐升级。 修复了RedisScheduler无法去重的BUG,感谢@codev777 仔细测试并发现问题。 #117 对Scheduler进行了重...

2014/05/03 08:23

WebMagic 0.5.0 发布,Java 爬虫框架

此次更新主要增加了监控功能,同时重写了多线程部分,使得多线程下性能有了极大的提升。另外还包含注解模式一些优化、多页面的支持等功能。 WebMagic开源已经一周年,项目也得到了不少发展,...

2014/04/28 09:43

没有更多内容

加载失败,请刷新页面

5
回答
有关Selenium做爬虫方式的资源消耗的问题

@黄亿华 你好,想跟你请教个问题: 我们采用了selenium的webdriver作为引擎,进行网页数据的抓取、以及后续的解析、数据持久化。webdriv...

2015/02/12 09:50
2
回答
webmagic selenium+JAVA 如何自动判断,页面加载完再执行之后的代码
Nicll 的回答 06/28 09:08
最佳答案
selenium的官方自带了加载完页面,再继续执行。不用单独设置。
3
回答
wemagic java爬虫获取翻页的总页码问题
Nicll 的回答 06/13 09:55
最佳答案
// 时间,多个span,只获取最后一个span的内容 List<String> t = page.getHtml() .xpath("//div[@class='article-sub']/span/text()").all(); List<String> time = Arrays.asL...
2
回答
使用selenium+java模拟登陆今日头条时需要手机验证码登陆,第二次怎么免输入信息登陆?
Nicll 的回答 06/13 09:46
最佳答案
首次通过手机验证码登录后,获取cookie,并将cookie保存到map中。 在主程序中定义map: public static Map<String, String> cookies; public static boolean first; JRTT.first首次为true,之后为fal...
3
回答
根据地图上的点位点击并抓取其显示的数据,有没有好的方案

首先是有一个地图,然后点击地图上的点位,抓取弹出蒙版的数据,求解

05/16 10:11
1
回答
停止爬虫失败

我最近在学习WebMagic框架,但是被一个功能实现一直困扰。我想实现前端控制爬虫停止,就是说当我前端点击停止按钮时,调用后台的爬虫停止方法。但是WebM...

05/04 16:33
1
回答
1
回答
1
回答
webmagic java使用selenium模拟打开翻页网页时,是获取什么内容,直接把url在string拼接打不开

模拟打开了翻页,不知道要获取什么,把url拼接在一个html形式里,但process里没有内容。在SeleniumDownloader基础上进行修改PAG...

02/01 15:36

没有更多内容

加载失败,请刷新页面

webmagic使用手册

新版文档地址[http://webmagic.io/docs/](http://webmagic.io/docs/),此手册已不再更新。

2013/12/01 20:54
18.9K
13
抽取百度收录链接(二)—爬取链接获取真实链接

接上篇《抽取百度收录链接(一)》 现在我们的大概思路有了。就是实现问题了。 这里我推荐一个java爬取页面的好工具。[weblink url="https://github.com/code4craft/webmagic"]webmagic[/webli...

2014/07/19 16:11
108
0
WebMagic的设计思想

### 1.1 WebMagic的设计思想 本文是WebMagic文档的一部分。系列文章写完后,会整合到[WebMagic新版文档](http://code4craft.github.io/webmagic-in-action/)中。 ![logo](https://raw.github...

2014/04/09 18:41
2.3K
2
折腾Javadoc笔记

webmagic在代码里用到了大量的中文注释,其实最大的目的是想生成中文的Javadoc。但是中文注释实在太不高级了,在各种编码下还会变成乱码。本着高端大气国际化的思路,还是想把它换成英文,但...

2013/08/17 14:11
588
0
WebMagic使用说明-安装篇

WebMagic使用说明-安装篇 ==== 本文是WebMagic文档的一部分。系列文章写完后,会整合到[WebMagic新版文档](http://my.oschina.net/flashsword/blog/193273)中。 ## 1. 使用WebMagic WebMagic...

2014/04/03 10:53
2.9K
5
WebMagic-Avalon之分布式实现方案

WebMagic之前具有基本的分布式功能,可以将一个Spider部署到多台机器上,并通过Redis来管理URL,达到多机合作抓取的目标。 我在WebMagic-Avalon里计划完成一个管理后台,通过这个后台可以新建...

2014/03/12 18:12
4.7K
4
悠然乱弹:WebMagic VS TinySpider

上次@黄勇 提到与@黄亿华 WebMagic比较的问题。我在后面简单回复了一下下,现系统整理一下,不一定正确。 两者都是可以用于网页数据抓取,都有良好的扩展性及架构设计,但是由于定位稍有差异...

2014/03/04 10:03
555
2
webmagic新版文档(更新中)

WebMagic in Action ======== WebMagic是一个简单灵活、便于二次开发的爬虫框架。除了可以便捷的实现一个爬虫,WebMagic还提供多线程功能,以及基本的分布式功能。 你可以直接使用WebMagic进...

2014/01/15 14:41
5.2K
3
webmagic的设计机制及原理-如何开发一个Java爬虫

![image](http://static.oschina.net/uploads/space/2013/1110/200709_oP1e_190591.jpg) >此文章是webmagic 0.1.0版的设计手册,后续版本的入门及用户手册请看这里:[https://github.com/cod...

2013/07/20 14:19
65.6K
50

没有更多内容

加载失败,请刷新页面

返回顶部
顶部