webmagic 0.70学习


最近计划两周时间内看完webmagic最新版WebMagic-0.7.0 的源代码,看了下最新版增加了很多功能

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的方式

  • 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

历史版本 :WebMagic 0.7.0 版本发布,Java 爬虫框架WebMagic 0.6.1 版本发布,Java 爬虫框架WebMagic 0.6.0 版本发布,Java爬虫框架WebMagic 0.5.3 版本发布,Java爬虫框架
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值