Webmagic Versions Save

A scalable web crawler framework for Java.

WebMagic-0.10.0

5 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/code4craft/webmagic/compare/WebMagic-0.9.1...WebMagic-0.10.0

WebMagic-0.9.1

7 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/code4craft/webmagic/compare/WebMagic-0.9.0...WebMagic-0.9.1

WebMagic-0.9.0

10 months ago

What's Changed

New Contributors

Full Changelog: https://github.com/code4craft/webmagic/compare/WebMagic-0.8.0...WebMagic-0.9.0

WebMagic-0.7.6

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/code4craft/webmagic/compare/WebMagic-0.7.5...WebMagic-0.7.6

WebMagic-0.7.5

1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/code4craft/webmagic/compare/WebMagic-0.7.3...WebMagic-0.7.5

WebMagic-0.7.3

6 years ago

本次更新增加了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(未定义时)。

#606 升级jsonpath到2.4.0 #608 升级jsoup到1.10.3

WebMagic-0.7.2

6 years ago

此次更新修复了0.7.0-0.7.1版本的若干bug。

  1. #594 Request中的HttpRequestBody实现序列化接口。
  2. #596 修复0.7.0开始代理认证无法正确使用的问题。
  3. #601 完善页面状态异常时的错误信息。
  4. #605 修复0.7.0开始重复调用onSuccess和onError函数导致监控出错的问题。

WebMagic-0.7.1

6 years ago

此次更新包含几个比较大的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

WebMagic-0.7.0

6 years ago

此次更新重写了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

代理支持

  • 新的代理APIProxyProvider,支持自由扩展
  • 默认实现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