先说解决方法:
去掉你请求头中的 Content-Length
在scrapy的过程中发送请求的时候,你会发现特别是post请求很多时候会报400的错误,明明同样的请求在requests中能请求成功,你尝试了scrapy.Request, scrapy.http.Request, scrapy.FormRequest都还是报这个错误,于是开始怀疑scrapy是不是有问题。
是的,scrapy是有问题的,因为它在背后默默做了一些操作,不像requests那么简洁,很多时候post请求都是因为你的请求头中 Content-Length这个字段造成的,把它这个参数去掉即可请求成功。
这个时候还有个疑问没有解除,那就是为何Content-Length这个字段为什么在requests中存在可以请求成功,而在scrapy中存在的话就不能请求成功呢
原因:
待续...

本文介绍了解决Scrapy框架中POST请求返回400错误的方法,通过去除请求头中的Content-Length字段来避免这一问题。解释了为何在requests库中此字段的存在不影响请求,而在Scrapy中则会导致失败。

4209

被折叠的 条评论
为什么被折叠?



