【发布时间】:2016-05-14 07:02:31
【问题描述】:
我遇到了这样一种情况,即我的 scrapy 代码在从命令行使用时工作正常,但是当我在部署 (scrapy-deploy) 并使用 scrapyd api 调度后使用同一个蜘蛛时,它会在“scrapy.extensions. feedexport.FeedExporter" 类。
- 一个是在初始化“open_spider”信号时
- 第二个是在初始化“item_scraped”信号时
- last while "close_spider" 信号
1.“open_spider”信号错误
2016-05-14 12:09:38 [scrapy] INFO: Spider opened
2016-05-14 12:09:38 [scrapy] ERROR: Error caught on signal handler: <bound method ?.open_spider of <scrapy.extensions.feedexport.FeedExporter object at 0x7fafb1ce4a90>>
Traceback (most recent call last):
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
result = f(*args, **kw)
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/pydispatch/robustapply.py", line 55, in robustApply
return receiver(*arguments, **named)
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/scrapy/extensions/feedexport.py", line 185, in open_spider
uri = self.urifmt % self._get_uri_params(spider)
TypeError: float argument required, not dict
2.“item_scraped”信号错误:
2016-05-14 12:09:49 [scrapy] DEBUG: Scraped from <200 https://someurl.>
2016-05-14 12:09:49 [scrapy] ERROR: Error caught on signal handler: <bound method ?.item_scraped of <scrapy.extensions.feedexport.FeedExporter object at 0x7fafb1ce4a90>>
Traceback (most recent call last):
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
result = f(*args, **kw)
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/pydispatch/robustapply.py", line 55, in robustApply
return receiver(*arguments, **named)
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/scrapy/extensions/feedexport.py", line 210, in item_scraped
slot = self.slot
AttributeError: 'FeedExporter' object has no attribute 'slot'
3.“close_spider”信号错误:
2016-05-14 12:09:49 [scrapy] INFO: Closing spider (finished)
2016-05-14 12:09:49 [scrapy] ERROR: Error caught on signal handler: <bound method ?.close_spider of <scrapy.extensions.feedexport.FeedExporter object at 0x7fafb1ce4a90>>
Traceback (most recent call last):
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
result = f(*args, **kw)
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/pydispatch/robustapply.py", line 55, in robustApply
return receiver(*arguments, **named)
File "/home/jonsnow/venv/scrapy1/lib/python2.7/site-packages/scrapy/extensions/feedexport.py", line 193, in close_spider
slot = self.slot
AttributeError: 'FeedExporter' object has no attribute 'slot'
- Scrapy:1.1.0 版
- scrapyd:1.1.0 版
也尝试过 scrapyd(1.1.0 和 scrapy 版本 0.24.6)
【问题讨论】:
-
您使用的是特殊的 FEED_URI 吗?
-
是的...我正在使用 FEED_URI...
-
FEED_URI 似乎不符合 open_spider 中的提要导出器,因此未设置槽(第一条语句中的异常),其他信号处理程序因此失败
-
我正在使用正常的默认设置...我没有禁用提要 uri ,就像其他解决方案建议的那样..我没有做任何开箱即用的操作
-
在 scrapyd.conf 中将 items_dir 设置为空是否有效?见github.com/scrapy/scrapyd/issues/31