繁体   English   中英

为什么scrapy-redis不起作用?

[英]Why the scrapy-redis not work?

我从github下载scrapy-redis并按照说明运行它,但失败并给出此错误:

2013-01-04 17:38:50+0800 [-] ERROR: Unhandled error in Deferred:
2013-01-04 17:38:50+0800 [-] Unhandled Error
        Traceback (most recent call last):
          File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/cmdline.py", line 138, in _run_command
            cmd.run(args, opts)
          File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/commands/crawl.py", line 44, in run
            self.crawler.crawl(spider)
          File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/crawler.py", line 47, in crawl
            return self.engine.open_spider(spider, requests)
          File "/usr/local/lib/python2.7/dist-packages/Twisted-12.2.0-py2.7-linux-i686.egg/twisted/internet/defer.py", line 1187, in unwindGenerator
            return _inlineCallbacks(None, gen, Deferred())
        --- <exception caught here> ---
          File "/usr/local/lib/python2.7/dist-packages/Twisted-12.2.0-py2.7-linux-i686.egg/twisted/internet/defer.py", line 1045, in _inlineCallbacks
            result = g.send(result)
          File "/usr/local/lib/python2.7/dist-packages/Scrapy-0.16.3-py2.7.egg/scrapy/core/engine.py", line 218, in open_spider
            scheduler = self.scheduler_cls.from_crawler(self.crawler)
        exceptions.AttributeError: type object 'Scheduler' has no attribute 'from_crawler'

如何处理?谢谢。

问题是scrapy-redis是一年前使用scrapy 0.13编写的。 scrapy的当前版本为0.17,并且如果将scrapy / core / engine.py的当前源代码去年版本进行比较 ,则可以看到导致错误的行是在这两个版本之间的某个点添加的(在实际上,它是在20128月21日添加的)

简而言之,发生错误是因为scrapy-redis与当前的scrapy版本不再兼容。 可能值得联系开发人员,询问他/她项目是否仍在活动中,否则有必要分叉存储库并自行修复。

好吧,我对旧的scrapy-redis进行了一些更改,以兼容scrapy 0.17。 尚未完全测试。 这是代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM