尽管您可以使用任何可调用函数作为输入和输出处理器,但Scrapy提供了一些常用的处理器,如下所述。其中一些MapCompose(如通常用作输入处理器)组成了按顺序执行的几个函数的输出,以产生最终的解析值。 以下是所有内置处理器的列表: 类scrapy.loader.processors.Identity 最简单的处理器,它什么都不做。它返回原始值不变。它不接收任何构造函数参数,也不接受Loader上下文。 例: >>> from scrapy.loader.processors import Identity >>> proc = Identity() &g

随着您的项目变得越来越大并获得越来越多的蜘蛛,维护成为一个基本问题,特别是当您必须为每个蜘蛛处理许多不同的解析规则,有很多例外,但也想重用通用处理器时。 项目加载器旨在减轻解析规则的维护负担,同时不失去灵活性,同时提供扩展和覆盖它们的便捷机制。因此,Item Loaders支持传统的Python类继承,以处理特定蜘蛛(或蜘蛛组)的差异。 例如,假设某个特定站点用三个破折号(例如)包含其产品名称,并且您不希望最终在最终产品名称中删除这些破折号。—Plasma TV— 以下是通过重用和扩展默认Product Item Loader(ProductLoader)来删除这些破折号的方法: fr

声明项目加载器 通过使用类定义语法将Item Loaders声明为Items。这是一个例子: from scrapy.loader import ItemLoader from scrapy.loader.processors import TakeFirst, MapCompose, Join class ProductLoader(ItemLoader): default_output_processor = TakeFirst() name_in = MapCompose(unicode.title) name_out = Join() price_in = MapCompose(uni