scrapy 如何导入设置以覆盖它
Posted
技术标签:
【中文标题】scrapy 如何导入设置以覆盖它【英文标题】:scrapy how to import the settings to override it 【发布时间】:2014-10-10 19:07:03 【问题描述】:这是我的代码
class Test(Spider):
self.settings.overrides['JOBDIR']= "seen"
我明白了:
File "C:\Python27\lib\site-packages\scrapy\spider.py", line 46, in settings
return self.crawler.settings
File "C:\Python27\lib\site-packages\scrapy\spider.py", line 41, in crawler
assert hasattr(self, '_crawler'), "Spider not bounded to any crawler"
AssertionError: Spider not bounded to any crawler
我正在扩展Spider
,但我没有使用Crawler
,因为我没有链接或规则可遵循
我猜我的问题是因为我没有很好地导入设置,我需要你的帮助
【问题讨论】:
对此有什么答案吗? 答案没有帮助吗? @Udy 我不知道我还没有尝试过。我现在很忙,但我稍后会测试它,无论如何+1谢谢 【参考方案1】:根据documentation,可以将每个蜘蛛的个别设置设置为一个类属性custom_settings
,应该是一个字典。在您的情况下,它将如下所示:
class TestSpider(Spider):
custom_settings = 'JOBDIR':"seen"
# The rest of the spider goes here
不确定这是否适用于早期版本的 scrapy。
【讨论】:
【参考方案2】:要更改蜘蛛中的设置,您可以:
class TestSpider(Spider):
def set_crawler(self, crawler):
super(TestSpider, self).set_crawler(crawler)
crawler.settings.set('JOBDIR','seen')
# rest of spider code
【讨论】:
为我工作。谢谢(我猜应该标记为已接受) 在seen
之后修复那个缺失的"
我得到 'CrawlerSettings' 对象没有属性 'set'
你用哪个版本的scrapy?
由于必须使用 Scrapy 1.0 from_crawler
而不是 set_crawler
。以上是关于scrapy 如何导入设置以覆盖它的主要内容,如果未能解决你的问题,请参考以下文章