第一篇笔记我们就介绍到,settings.py
可以用来编写当前scrapy工程的配置。除此之外,Spider中还能通过类属性,指定Spider的私有配置。
这篇笔记我们就具体看一看,我们有如何使用settings.py
,以及哪些配置可以修改。
Spider中可以通过self.settings
读取配置信息:
class MySpider(scrapy.Spider):
name = 'myspider'
start_urls = ['http://example.com']
def parse(self, response):
print("Existing settings: %s" % self.settings.attributes.keys())
由于配置太多了,大部分我都没有写,这里只是写了几个很常用的配置选项。具体所有配置请参考官方文档。
用于指定当前scrapy工程名。这个配置可能被用于User-Agent
的构建。我们使用scrapy命令行工具创建工程时,这个名字会默认自动指定。
数据处理管线(pipeline)处理数据的最大线程数。默认为16。
每一个域名最大的并发请求数。默认为8。
每个服务器IP的最大并发请求数。如果设置不为0,则CONCURRENT_REQUESTS_PER_DOMAIN
配置被屏蔽。默认为0。
默认请求头。
默认值:
{
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en',
}
爬虫的最大搜索深度。默认为0,表示深度不限。
如果settings.py
中的全局配置不符合某个Spider的要求,我们可以在Spider中单独进行局部配置,这需要用到custom_settings
字段,其类型是一个字典,配置项和settings.py
相同。