WebMagic 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
WebMagic 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
WebMagic 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache-2.0
开发语言 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爬虫

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(84) 发布并加入讨论🔥
发表了资讯
2017/07/31 09:55

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

WebMagic是一个简单灵活的Java爬虫框架。基于WebMagic,你可以快速开发出一个高效、易维护的爬虫。 本次更新增加了Downloader模块的一些功能。 #609 修复HttpRequestBody没有默认构造函数导致无法反序列化的bug。 #631 HttpRequestBody的静态构造函数不再抛出UnsupportedEncodingException受检异常。 #571 Page对象增加bytes属性,用于获取二进制数据。下载纯二进制页面时,请设置request.setBinarayContent(true),这样对于二进...

6
68
发表了资讯
2017/06/18 20:06

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

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

7
34
发表了资讯
2017/06/04 18:29

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

此次更新包含几个比较大的Bugfix,以及一些遗留问题的改进。 修复0.7.0引入的RedisScheduler无法使用的bug。#583 注解模式的JsonPath默认会指定source为RawText,不再会出现自动为头尾加了<html>标签导致无法解析的情况。#589 RegexSelector之前版本默认匹配group1,并通过对无捕获组的正则头尾加括号的形式来统一抽取内容。在0.7.1版本改为不再改变正则,而是通过匹配group0还是group1来实现匹配,见#559。新做法可以减少一些特...

2
44
发表了资讯
2017/05/29 21:39

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

WebMagic 0.7.0 版本发布了,此次更新重写了HttpClientDownloader,完善了POST等其他Http Method的支持,并重写了代理API,更加简单和便于扩展。 POST支持 新的POST API,支持各种RequestBody #513 Request request = new Request("http://xxx/path"); request.setMethod(HttpConstant.Method.POST); request.setRequestBody(HttpRequestBody.json("{'id':1}","utf-8")); 移除了老的在request.extra中设置NameValuePair的...

8
58
发表了资讯
2017/01/21 22:10

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

WebMagic 0.6.1 版本发布了。本次更新修复了一些 0.6.0 的问题和一些小优化。 修改默认策略为信任所有 https 证书 #444 @ckex 修复使用 startUrls 添加 url 时,如果使用了 cookie 会出现空指针的问题 #438 PhantomJSDownloader 支持 crawl.js 路径自定义 #414 @jsbd POST 请求支持 302 跳转 #443 @xbynet 注:默认信任所有证书会有内容伪造的风险,但是考虑到爬虫的便利性还是加上了,使用者需要自己判断内容安全性。...

7
32
发表了资讯
2016/12/19 07:05

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

WebMagic 0.6.0 版本发布了。 此次更新主要是一些依赖包的升级和bugfix。 #290 代理增加用户名密码认证 @hepan #194 重构代理池部分代码,支持自定义代理池 @EdwardsBean #314 修复低版本json-path依赖2.x的StringUtils导致报错的问题 #380 升级fastjson 到1.2.21 #301 修复JsonPath在注解模式不可用的问题 @Salon-sai #377 修复监控模块在URL带有端口时会报错的问题 #400 修复FileCacheQueueScheduler的NullPointerException问...

12
53
发表了资讯
2016/01/22 00:00

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

时隔一年半,作者终于回归了。这个版本主要解决之前的一些BUG,后续会慢慢的继续完善功能。 升级Xsoup到0.3.1,支持//div[contains(@id,'te')]语法。 #245 升级Jsoup到1.8.3,解决n-th selector二进制不兼容的问题。 #139 修复JsonFilePipeline保存路径的问题 #144 修复@TargetUrl增加SourceRegion后取不到链接的问题 #157 修复FileCacheQueueScheduler中去重偶尔不工作的问题 @zhugw #188 增加重试的间隔时间,默认为1秒 @edw...

19
67
发表了资讯
2014/06/05 00:00

WebMagic 0.5.2发布,Java爬虫框架

此次主要包括对于Selector部分的重构,以及一些功能的完善和一些Bugfix。WebMagic官网(http://webmagic.io/)已同步更新:。 重构了Selector部分,使得结构更清晰,并且能够更好的支持链式的XPath抽取了。 [Issue #113] 支持对于选取出来的结果,进行外部迭代。例如: List<Selectable> divs = html.xpath("//div").nodes(); for (Selectable div : divs) { System.out.println(div.xpath("//h2").get()); } 增强自动...

16
33
发表了资讯
2014/05/03 00:00

WebMagic 0.5.1 发布,Java 爬虫框架

此次更新主要包括Scheduler的一些改动,对于自己定制过Scheduler的用户,强烈推荐升级。 修复了RedisScheduler无法去重的BUG,感谢@codev777 仔细测试并发现问题。 #117 对Scheduler进行了重构,新增了接口DuplicateRemover,将去重单独抽象出来,以便在同一个Scheduler中选择不同的去重方式。 #118 增加了BloomFilter去重方式。BloomFilter是一种可以用极少的内存消耗完成大量URL去重的数据结构,缺点是会有少量非重复的URL被判...

15
50
发表了资讯
2014/04/28 00:00

WebMagic 0.5.0 发布,Java 爬虫框架

此次更新主要增加了监控功能,同时重写了多线程部分,使得多线程下性能有了极大的提升。另外还包含注解模式一些优化、多页面的支持等功能。 WebMagic开源已经一周年,项目也得到了不少发展,也慢慢建立起了自己的社区。感谢各位朋友的支持! 项目总体进展: 官网webmagic.io上线了!同时上线的还有详细版的官方文档http://webmagic.io/docs,从此使用更加简单! 新增三名合作开发者@ccliangbo @ouyanghuangzheng @linkerlin ,一...

23
112
发表了资讯
2014/03/14 00:00

WebMagic 0.4.3 发布,Java 爬虫框架

WebMagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。 本次更新主要增加了一些XPath语法的支持,以及一些bug修复工作。 一、升级Xsoup到0.2.0,增加新的XPath语法支持。包括: contains: //div[contains(@id,'foo')] 选择条件(方括号中的XPath谓词)的逻辑运算(and/or): //div[@id='foo' or @class='bar'] //div[@id='foo' and @class='bar'] //div[@id='foo' a...

13
101
发表了资讯
2013/12/03 00:00

webmagic 0.4.2发布,Java爬虫框架

本次更新修复了一个比较严重的bug,推荐所有使用0.4.0和0.4.1版本的用户更新。 [issue46] (严重)修复下载线程偶尔会僵死的问题,通过设置SocketTimeout解决。 [issue45] 使用@ExtractBy注解List字段,抽取多个列表时,会自动判断,无需再设置multi=true。 [issue44] 修复HttpClientDownloader double check使用错误的问题。感谢@supermicah 修复。 webmagic今后会在osc同步维护文档,地址:http://my.oschina.net/flashsword/bl...

8
22
发表了资讯
2013/11/28 00:00

WebMagic 0.4.1 发布,Java 爬虫框架

此次更新加强了Ajax抓取的功能,并进行了一些功能改进。同时引入了重要的脚本化功能"webmagic-script",为今后的WebMagic-Avalon计划做准备。 功能增强: 修复了抓取完页面后,Spider偶尔无法退出的问题。详细问题的分析,有兴趣的可以点这里查看。 将抽取正文的SmartContentSelector中的算法改为哈工大的正文抽取算法https://code.google.com/p/cx-extractor/ ,经过测试,有较好的效果。 使用方法:Html.getSmartContent()。 ...

17
98
发表了资讯
2013/11/07 00:00

WebMagic 0.4.0 发布,Java爬虫框架

此次更新主要对下载模块进行了优化,并增加了同步下载的API,同时对代码进行了一些重构。 一、Downloader部分更新: 升级HttpClient到4.3.1,重写了HttpClientDownloader的代码 #32。 在http请求中主动开启gzip,降低传输开销 #31。 修复0.3.2及之前版本连接池不生效的问题 #30,使用HttpClient 4.3.1新的连接池机制,实现连接复用功能。 经测试,下载速度可达到90%左右的提升。测试代码:Kr36NewsModel.java 。 二、增加同步抓...

42
102
发表了资讯
2013/09/23 00:00

webmagic 0.3.2 发布,Java爬虫框架

此次更新主要添加了注解模式下的类型转换支持,并且允许自定义转换规则。 1. 添加了注解模式下的类型转换支持,Model可以有更丰富的类型了,内置了基本类型以及日期的支持。 @TargetUrl("http://my.oschina.net/flashsword/blog/\\d+") public class OschinaBlog { @ExtractBy("//title/text()") private String title; @ExtractBy(value = "div.BlogContent", type = ExtractBy.Type.Css) private String c...

32
54
发表了资讯
2013/09/08 00:00

webmagic 0.3.1发布,若干bug修复

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。 更新内容如下: 修复了0.3.0版本中,注解模式的空指针错误,感谢@cmlq 发现问题; 为Spider增加了start和stop方法,达到控制Spider运行时间的效果; 修复了一个相对地址转换的bug。 增加了单元测试,保证核心流程的正常工作。 PS: 作者其实不太好意思发这条新闻,因为有一个核心功能:注解模式在0.3.0中是不可用的,这...

15
7
发表了资讯
2013/09/04 00:00

webmagic 0.3.0 发布,高性能Java爬虫框架

webmagic的是一个无须配置、便于二次开发的爬虫框架,它提供简单灵活的API,只需少量代码即可实现一个爬虫。 之前两个版本的主题分别是"灵活","方便",而此次更新的主题是"性能"。 主要更新内容: 1. 重写了XPath解析器,替换了HtmlCleaner。这个XPath解析器(我另外建立了一个项目Xsoup)基于Jsoup完成,比HtmlCleaner性能好一倍以上,同时有更友好的错误提示。 2. 使用Xsoup后,结合webmagic内部的一些优化,抽取单页面的时间从...

37
88
发表了资讯
2013/08/21 00:00

webmagic 0.2.1 发布,Java爬虫框架

此次更新主要是抽取模块的一些改动,使得抽取更加方便。 完成一些国际化的工作,并发布到了maven中央库。0.2.1及以后的版本直接在项目中添加依赖webmagic-core/webmagic-externsion即可。 为Request增加了优先级功能,可以指定爬虫爬取url的顺序(需要使用PriorityScheduler)。 为CSS Selector增加属性选择功能。 为Regex Selector增加指定分组功能。 增加JsonPathSelector,方便解析ajax内容。 支持对Selector做And和Or运算,并...

6
66
发表了资讯
2013/08/12 00:00

webmagic 0.2.0 发布,Java垂直爬虫框架

此次更新的主题是"方便"(之前的主题是"灵活")。 增加了webmagic-extension模块。 增加了注解方式支持,可以通过POJO+注解的方式编写一个爬虫,更符合Java开发习惯。以下是抓取oschina博客的完整代码: @TargetUrl("http://my.oschina.net/flashsword/blog/\\d+") public class OschinaBlog { @ExtractBy("//title") private String title; @ExtractBy(value = "div.BlogContent",type = ExtractBy.Type.Css) ...

22
89
发表了资讯
2013/07/25 00:00

webmagic 0.1.0版本发布,Java垂直爬虫框架

第一个正式版本。 修改了若干API,使得可扩展性更强,重写了Pipeline接口,将抽取结果集包装到ResultItems对象,便于逻辑分离。 增加下载的重试机制,支持gzip,支持自定义UA/cookie。 增加多线程抓取功能,只需在初始化的时候指定线程数即可。 增加jquery形式的CSS Selector API,可以通过page.getHtml().$("div.body")形式抽取元素。 完善了文档,架构说明:webmagic的设计机制及原理-如何开发一个Java爬虫,Javadoc:http://...

13
77
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
84 评论
1K 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部