- 场景
使用scrapy对数据进行抓取,需要传递的参数是Request Payload参数,使用Resquest发送post请求 - 代码如下
这是返回400的代码
yield scrapy.Request(url=url,
method="POST",
headers={"Content-Type":"application/json","Host":"web.hi-teeth.com","Content-Length":"18"},
encoding="utf-8",
body=json.dumps({"key":"value"}),
dont_filter=True,
callback=回调函数)
-
原因
头部信息中的"Content-Length":"18"造成的错误信息,取消掉就可以,个人任务可能是限制为18造成长度不足的错误 -
解决方案
去掉头部信息中的"Content-Length"即可
正确代码
yield scrapy.Request(url=url,
method="POST",
headers={"Content-Type":"application/json","Host":"web.hi-teeth.com"},
encoding="utf-8",
body=json.dumps({"key":"value"}),
dont_filter=True,
callback=回调函数)
有知道正确原因的同学可以指导一下,万分感谢