通常我们需要把数据存在数据库中,一般通过scrapy的pipeline机制实现。
也算是刚用scrapy不久吧,每次写了新的pipeline,我都在project的settings中设置ITEM_PIPELINES,感觉特别麻烦,有时候还忘了。也喵到过settings有5种类型,什么Command line options (most precedence)、Settings per-spider、Project settings module、Default settings per-command、Default global settings (less precedence)、但是却没有真正理解。今天看spider的时候发现了Spider有个custom_settings属性,可以覆写一些设置。
因此,我如果想在spider1中用pipelineClass1和pipelineClass2, spider2中用pipelineClass3,
那么如下定义:
Class Spider1(CrawlSpider):
name = 'spider1'
custom_settings = {
'ITEM_PIPELINES':{'pipelineClass1': 300,'pipelineClass2': 400},
}
Class Spider2(CrawlSpider):
name = 'spider2'
custom_settings = {
'ITEM_PIPELINES':{'pipelineClass3': 300},