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

公眾號
微信公眾號

編程獅公眾號