scrapy 2.3 如何访问设置
在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
应用程序编程接口。
内置设置参考
以下是所有可用的零碎设置的列表,按字母顺序排列,以及它们的默认值和应用范围。
如果设置绑定到任何特定组件,那么范围(如果可用)将显示使用该设置的位置。在这种情况下,将显示该组件的模块,通常是扩展、中间件或管道。它还意味着必须启用组件才能使设置生效。