Changelog History
-
v0.7.3 Changes
July 30, 2017本次更新增加了Downloader模块的一些功能。
#609 修复HttpRequestBody没有默认构造函数导致无法反序列化的bug。
👍 #631 HttpRequestBody的静态构造函数不再抛出UnsupportedEncodingException
受检异常。#571 Page对象增加bytes属性,用于获取二进制数据。下载纯二进制页面时,请设置
request.setBinarayContent(true)
,这样对于二进制内容不会尝试转换为String,减小开销。#629 在HttpUriRequestConverter中会自动对一些导致URI异常的字符进行转移或过滤。
#610 自动识别编码时,可以识别Content-Type中charset为大写的情况。
#627 支持为Request单独设置页面编码,兼容同一站点多种编码方式的情况。
#613 Page对象增加charset属性,其值为request/site中设置的charset,或者为自动检测的charset(未定义时)。 -
v0.7.2 Changes
June 17, 2017 -
v0.7.1 Changes
June 04, 2017🛠 此次更新包含几个比较大的Bugfix,以及一些遗留问题的改进。
- ⏱ 修复0.7.0引入的RedisScheduler无法使用的bug。#583
- 注解模式的JsonPath默认会指定source为RawText,不再会出现自动为头尾加了
<html>
标签导致无法解析的情况。#589 - RegexSelector之前版本默认匹配group1,并通过对无捕获组的正则头尾加括号的形式来统一抽取内容。在0.7.1版本改为不再改变正则,而是通过匹配group0还是group1来实现匹配,见#559。新做法可以减少一些特殊用法的出错几率,例如零宽断言(#556)。
- 重构了
ObjectFormatter
部分,修复了ObjectFormatter无法初始化参数的bug。 #570
-
v0.7.0 Changes
May 29, 2017此次更新重写了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的方式
POST请求不再进行去重 #484
代理支持
- 新的代理API
ProxyProvider
,支持自由扩展 默认实现SimpleProxyProvider是一个简单的round-robin实现,可以添加任意个数的代理。
HttpClientDownloader httpClientDownloader = new HttpClientDownloader();SimpleProxyProvider proxyProvider = SimpleProxyProvider.from(new Proxy("127.0.0.1", 1087), new Proxy("127.0.0.1", 1088)); httpClientDownloader.setProxyProvider(proxyProvider);
移除了Site上关于代理配置的setProxy等,代理设置统一到HttpClientDownloader里。
新的SimpleHttpClient
用作简单的单次下载和解析时,使用SimpleHttpClient可以满足需求
SimpleHttpClient simpleHttpClient = new SimpleHttpClient();GithubRepo model = simpleHttpClient.get("github.com/code4craft/webmagic",GithubRepo.class);
其他改动
- 为Page中增加状态码和Http头信息 #406
- 支持Request级别设置Http Header和Cookie
- 去掉Site.addStartRequest() , 用Spider.addStartRequest()代替 #494
- HttpClientDownloader大幅重构,将Request转换抽象到HttpUriRequestConverter(之前继承HttpClientDownloader的实现可能需要做相应修改) #524
- 将CycleRetry和statusCode的判断逻辑从Downloader中迁移到Spider中 #527
- 通过Page.isDownloadSuccess而不是Page对象本身为空来判断是否下载失败
- 为PageModel增加不发现新URL的功能 #575
- 为Site增加了disableCookieManagement属性,在不想使用cookie时使用 #577
-
v0.7.0.alpha
May 20, 2017 -
v0.6.0 Changes
December 18, 2016🛠 此次更新主要是一些依赖包的升级和bugfix。
#194 重构代理池部分代码,支持自定义代理池 @EdwardsBean
#314 修复低版本json-path依赖2.x的StringUtils导致报错的问题
#380 升级fastjson 到1.2.21
#301 修复JsonPath在注解模式不可用的问题 @Salon-sai
#377 修复监控模块在URL带有端口时会报错的问题
⏱ #400 修复FileCacheQueueScheduler的NullPointerException问题
#407 为PhantomJSDownloader添加新的构造函数,支持phantomjs自定义命令 @jsbd
#419 修复抓取https链接线程无法结束导致进程一直运行的问题 @cpaladin
#374 升级HttpClient到4.5.2,修复一些安全问题
#424 去掉Guava依赖
🚚 因为Guava不同版本兼容性不好,经常导致demo无法运行,所以我最后决定去掉了Guava的依赖。如果使用了
BloomFilterDuplicateRemover
的用户,需要手动依赖Guava包。#426 去掉Avalon相关包
Avalon是之前计划的一站式抓取平台。因为有个朋友基于WebMagic做了类似的实现Gather Platform,所以Avalon放弃了,转而支持这个项目。WebMagic核心会专注于做应用内的框架。
-
v0.5.3 Changes
January 21, 2016时隔一年半,作者终于回归了。这个版本主要解决之前的一些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秒 [@EdwardsBean](ht[tps* //github.com/edwardsbean)
- #193 修复分页功能MultiPagePipeline可能出现的并发问题 edwardsbean
- #198 修正site.setHttpProxy()不起作用的bug @okuc