先说解决方法:

去掉你请求头中的 Content-Length

在scrapy的过程中发送请求的时候,你会发现特别是post请求很多时候会报400的错误,明明同样的请求在requests中能请求成功,你尝试了scrapy.Request,   scrapy.http.Request,  scrapy.FormRequest都还是报这个错误,于是开始怀疑scrapy是不是有问题。

是的,scrapy是有问题的,因为它在背后默默做了一些操作,不像requests那么简洁,很多时候post请求都是因为你的请求头中 Content-Length这个字段造成的,把它这个参数去掉即可请求成功。

这个时候还有个疑问没有解除,那就是为何Content-Length这个字段为什么在requests中存在可以请求成功,而在scrapy中存在的话就不能请求成功呢

待续...

通常我们在一个站站点进行采集的时候,如果是小站的话 我们使用 scrapy 本身就可以满足。 但是如果在面对一些比较大型的站点的时候,单个 scrapy 就显得力不从心了。 要是我们能够多个 Scrapy 一起采集该多好啊 人多力量大。 很遗憾 Scrapy 官方并不支持多个同时采集一个站点,虽然官方给出一个方法: **将一个站点的分割成几部分 交给不同的 scrapy 去采集** 似乎是个解决办法,但是很麻烦诶!毕竟分割很麻烦的哇 下面就改轮到我们的额主角 Scrapy -Redis登场了! 能看到这篇文章的小伙伴肯定已经知道什么是 Scrapy 以及 Scrapy -Redis了,基础概念这里就不再介绍。默认情况下 这是一个 POST 请求 并需要提交表单数据,所以我用了 scrapy .FormRequest构造数据包,具体spider代 : class yilicai(Spider): name = "yilicai" urls = "http://api.yilicai.cn/pr... 之前在抓一个网站Danaos的时候,发现能用requests和 post man 发送 同样的header和payload的时候都能得到正确的结果,但是 scrapy 就会返回 400 错误,后来发现这是Twisted本身存在的 问题 ,看了官网也没找到解决方法 spider文件在这里: class DanspiderSpider( scrapy .Spider): name = 'danspider' scrapy 出现 400 Bad Request 问题 遇到 400 解决思路: 1.检查url连接,有的url最后有’/’ 有的没有,看看是不是这个原因造成。如有’/’,去掉试试,没有去掉试试; 2.设置 scrapy COOKIES_ENABLED = False 1.笔者前几天由于想要下载百度文库的资料,但是苦于没有文库积分,所以在淘宝上购买了文库积分服务下载地址:https://wenkubao.cc/该平台通过提交账号、密 和百度文库文章地址方式获取下载地址,试了一下,不 发送 账号密 无法下载,于是查看源代 发现上图中有一个地址,打开可以看到下图浏览器中没有验证账号密 选项, 发送 数据包是也没有带上账号密 信息同时邮件中收到了下载文档这里我们就有可以操作的... def __init__(self): chromeoption = webdriver.ChromeOptions() # chromeoption.add_argument('--headless') # 无头浏览器 chromeoption.a https://blog.csdn.net/weixin_38819889/article/details/109106942 https://www.cnblogs.com/ceason/p/13935292.html import scrapy class FySpider( scrapy .Spider): name = 'fy' # allowed_domains = ['www.baidu.com'] start_urls = ['https://fanyi.baid