scrapy如何导入设置以覆盖它

时间:2014-08-17 21:11:12

标签: python python-2.7 scrapy

这是我的代码

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,因为我没有链接或规则可以关注

我猜我的问题是因为我没有很好地导入设置,我需要你的帮助

2 个答案:

答案 0 :(得分:11)

要更改蜘蛛中的设置,您可以:

class TestSpider(Spider):

    def set_crawler(self, crawler):
        super(TestSpider, self).set_crawler(crawler)
        crawler.settings.set('JOBDIR','seen')

    # rest of spider code

答案 1 :(得分:2)

根据documentation,每个蜘蛛的个别设置可以设置为类属性custom_settings,它应该是字典。在您的情况下,它将如下所示:

class TestSpider(Spider):

    custom_settings = {'JOBDIR':"seen"}
    # The rest of the spider goes here

不确定这是否适用于早期版本的scrapy。