在 Scrapy 中,ITEM_PIPELINES 是一个字典,用于配置项目的 Item Pipelines 。字典中的键是 Pipeline 的导入路径,值是一个整数的优先级(如 300)。这个优先级决定了 Pipeline 的执行顺序。
1. 优先级的作用
- 数值越小,优先级越高 :Scrapy 会按照优先级从低到高(即数值从小到大)依次执行 Pipeline。
- 默认范围 :优先级的范围通常是
0-1000,但你可以根据需要设置任意整数。
2. 示例说明
在你的配置中:
ITEM_PIPELINES = {
'pdf_crawler.pipelines.PdfDownloadPipeline': 300,
}
'pdf_crawler.pipelines.PdfDownloadPipeline'是 Pipeline 的导入路径。300是优先级,表示这个 Pipeline 的执行顺序。
如果有多个 Pipeline,Scrapy 会按照优先级顺序执行。例如:
ITEM_PIPELINES = {
'pdf_crawler.pipelines.PipelineA': 100,
'pdf_crawler.pipelines.PipelineB': 200,
'pdf_crawler.pipelines.PdfDownloadPipeline': 300,
}
执行顺序将是: 1. PipelineA(优先级 100) 2. PipelineB(优先级 200) 3. PdfDownloadPipeline(优先级 300)
3. 常见用途
- 数据清洗 :将优先级较高的 Pipeline 用于数据清洗(如去除空白字符、格式化数据)。
- 数据验证 :在数据存储之前,使用 Pipeline 验证数据的有效性。
- 数据存储 :将优先级较低的 Pipeline 用于数据存储(如保存到数据库或文件)。
4. 总结
300是PdfDownloadPipeline的优先级,决定了它在 Pipeline 执行顺序中的位置。- 你可以通过调整优先级来控制多个 Pipeline 的执行顺序。
- 如果有多个 Pipeline,确保为每个 Pipeline 设置合适的优先级,以满足业务逻辑的需求。