了解 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方法。
: » Webmagic处理POST、PUT、PATCH等请求
原创文章,作者:506227337,如若转载,请注明出处:https://blog.ytso.com/251573.html