Python 刮擦-激活项目管道组件-项目管道设置
在scrapy文档中有以下信息: 激活项目管道组件 要激活项目管道组件,必须将其类添加到 项目\u管道设置,如以下示例所示: 项目_管道={ “myproject.Pipeline.PricePipeline”:300, 'myproject.pipelines.JsonWriterPipeline':800,} 在此设置中指定给类的整数值决定 它们运行的顺序-项目通过管道从订单号低到 高。通常将这些数字定义在0-1000范围内 我不理解最后一段,主要是“确定 它们运行的顺序-项目通过管道从订单号低到 “高”,你能用别的话解释吗?选择数字是因为什么?在0-1000范围内如何选择值?从 项目(u)管道 默认值:{} 包含要使用的项目管道及其顺序的dict。这个 默认情况下,dict为空。顺序值是任意的,但这是惯例 将其定义在0-1000范围内Python 刮擦-激活项目管道组件-项目管道设置,python,scrapy,settings,pipeline,Python,Scrapy,Settings,Pipeline,在scrapy文档中有以下信息: 激活项目管道组件 要激活项目管道组件,必须将其类添加到 项目\u管道设置,如以下示例所示: 项目_管道={ “myproject.Pipeline.PricePipeline”:300, 'myproject.pipelines.JsonWriterPipeline':800,} 在此设置中指定给类的整数值决定 它们运行的顺序-项目通过管道从订单号低到 高。通常将这些数字定义在0-1000范围内 我不理解最后一段,主要是“确定 它们运行的顺序-项目通过管道从订单
由于Python中的字典是一个无序的集合,而
项目管道
必须是一个字典(正如许多其他设置一样,例如SPIDER\u中间件
),因此您需要以某种方式定义应用管道的顺序。这就是为什么需要为定义的每个管道分配一个从0到1000的数字
仅供参考,如果您查看Scrapy source,您将发现为每个设置调用的函数,如项目管道
——它使用字典值排序,从您在项目管道
中定义的字典中生成一个列表(有序集合):
def build_component_list(base, custom):
"""Compose a component list based on a custom and base dict of components
(typically middlewares or extensions), unless custom is already a list, in
which case it's returned.
"""
if isinstance(custom, (list, tuple)):
return custom
compdict = base.copy()
compdict.update(custom)
items = (x for x in six.iteritems(compdict) if x[1] is not None)
return [x[0] for x in sorted(items, key=itemgetter(1))]