scrapy 如何导入设置以覆盖它

3 投票
2 回答
6932 浏览
提问于 2025-04-18 17:35

这是我的代码

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 个回答

4

根据文档,每个爬虫的单独设置可以作为一个类属性来定义,叫做custom_settings,它应该是一个字典。在你的情况下,它看起来会像这样:

class TestSpider(Spider):

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

不确定这个方法在早期版本的scrapy中是否有效。

12

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

class TestSpider(Spider):

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

    # rest of spider code

撰写回答