scrapy 2.3 如何访问设置

2021-06-10 10:45 更新

在Spider中,可以通过 ​self.settings​ :

class MySpider(scrapy.Spider):
    name = 'myspider'
    start_urls = ['http://example.com']

    def parse(self, response):
        print(f"Existing settings: {self.settings.attributes.keys()}")

注解

这个 ​settings​ 属性在Spider初始化后在基本Spider类中设置。如果要在初始化之前使用这些设置(例如,在Spider的 ​__init__()​ 方法),您需要重写 ​from_crawler()​ 方法。

可以通过访问 ​scrapy.crawler.Crawler.settings​ 传递给的爬网程序的属性 ​from_crawler​ 扩展、中间商和项目管道中的方法:

class MyExtension:
    def __init__(self, log_is_enabled=False):
        if log_is_enabled:
            print("log is enabled!")

    @classmethod
    def from_crawler(cls, crawler):
        settings = crawler.settings
        return cls(settings.getbool('LOG_ENABLED'))

设置对象可以像dict一样使用(例如, ​settings['LOG_ENABLED']​ ,但通常最好使用 ​Settings​ 应用程序编程接口。

内置设置参考

以下是所有可用的零碎设置的列表,按字母顺序排列,以及它们的默认值和应用范围。

如果设置绑定到任何特定组件,那么范围(如果可用)将显示使用该设置的位置。在这种情况下,将显示该组件的模块,通常是扩展、中间件或管道。它还意味着必须启用组件才能使设置生效。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号