TypeError: ExecutionEngine.crawl() got an unexpected keyword argument ‘spider‘

翻译过来的意思就是:ExecutionEngine.crawl()方法不期望接收一个名为spider的关键字参数

问题来源

我想用redis和python中的scrapy框架进行,分布式爬取数据。然后,没改成分布式之前我可以正常运行爬取数据,但是肯定没有分布式爬取数据来的快。爬上万肯定慢的要死,要是用分布式每台电脑爬几千很快就结束了。

问题自查

还自查个啥,我也不会。自己根本没有往版本方向去想。看到一个人大佬说可能版本不兼容导致。我就去找我以前运行分布式成功的例子,我发现我现在运行的版本还真的不一样。我就试试,换了一个版本,你猜怎么着了,立马跑的比猪还快,我感动鸭!

问题解决

scrapy框架来进行分布式爬取数据需要导入scrapy-redis模块:

一开始我Scrapy模块版本是2.10.1然后就报了上面的错误,然后改成2.8.0成功了

成功版本:Scrapy版本2.8.0需要python版本3.8及以上,我自己用的Python3.10建议大家都用3.8因为它承上启下比较好。scrapy-redis版本是0.7.3 ,它的要求版本:

  • Python 3.7+
  • Redis >= 5.0
  • Scrapy >= 2.0
  • redis-py >= 4.0

总结

不是Scrapy版本问题,可能就是scrapy-redis版本问题。版本都可以自己随意搭配,但要都能兼容。

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值