Webmagic处理POST、PUT、PATCH等请求

了解 RESTful 的都知道,POST不是幂等操作,所以理论上每次请求的结果都未必一样,所以原则上是没有办法做“去重”操作的。其次,除了GET请求,其他Method都没有办法自动发现,一般都是手工构建出来的,使用者更应该自己去控制是否重复。

一般来说,爬虫只会抓取信息展示类的页面,所以基本只会处理HTTP GET方法的数据。但是对于某些场景,模拟POST等方法也是需要的。

 Request request = new Request("http://example.com/item"); request.setMethod(HttpConstant.Method.POST); NameValuePair[] nameValuePair = new NameValuePair[](){ new BasicNameValuePair("id","100"),new BasicNameValuePair("tag","2")}; request.putExtra("nameValuePair", nameValuePair); spider.addRequest(request);

POST的去重

从0.6.2版本开始,POST默认不会去重,详情见:Issue 484。如果想要去重可以自己继承DuplicateRemovedScheduler,重写push方法。

爬虫遇到的Post请求基本没有,所以大家也不用担心。如果遇到了,自己继承DuplicateRemovedScheduler,重写push方法。

0
如无特殊说明,文章均为原作者原创,转载请注明出处

该文章由 发布

这货来去如风,什么鬼都没留下!!!
发表我的评论

Hi,请填写昵称和邮箱!

取消评论
代码 贴图 加粗 链接 删除线 签到