目录
1.问题描述
如果我在运行 scrapy 之前将启动 url 插入到 redis,则会成功;
但是如果我先运行 scrapy 并插入 url,监听 url 将得到失败信息。
2.问题分析:
scrapy-redis
的版本兼容性问题相关。在新版 Scrapy 中,engine.crawl()
方法的参数列表发生了变化,可能与你使用的scrapy-redis
版本不兼容。
浏览GitHub才得知: Release notes — Scrapy 2.11.0 documentation
scrapy v2.10.0 不再支持将蜘蛛参数传递给 scrapy.core.engine.ExecutionEngine 的crawl()方法。
3.问题解决:
降级scrapy,且保证推送到redis队列的请求是json格式
pip uninstall scrapy
pip install scrapy == 2.9.0
lpush myspider:start_urls '{"url": "具体url"}
至此,问题解决!!!
如果有不对的地方,或者更好的见解,欢迎在评论区指出和发表!