删除项目后,通常需要保留或导出这些项目,以便在其他应用程序中使用这些项目。毕竟,这是刮擦过程的全部目的。 为此,Scrapy为不同的输出格式提供了一组项目导出器,例如XML,CSV或JSON。 使用项目导出器 如果您赶时间,并且只想使用项目导出器输出已删除的数据,请参阅Feed导出。否则,如果您想知道项目导出器如何工作或需要更多自定义功能(默认导出未涵盖),请继续阅读下面的内容。 要使用项目导出器,必须使用其必需的args对其进行实例化。每个项目导出器都需要不同的参数,因此请在内置项目导出器参考中检查每个导出器文档以确定。在实例化导出器之后,您必须: 1.调用方法start_exporting

类scrapy.loader.SpiderLoader 该类负责检索和处理项目中定义的spider类。 可以通过在SPIDER_LOADER_CLASS项目设置中指定其路径来使用自定义蜘蛛装载程序 。它们必须完全实现scrapy.interfaces.ISpiderLoader接口以保证无错执行。 from_settings(设定) Scrapy使用此类方法来创建类的实例。它是使用当前项目设置调用的,它会加载在SPIDER_MODULES 设置模块中递归发现的蜘蛛。 参数: 设置(Settings实例) – 项目设置 load(spider_name ) 获取具有给定名称的Spid

scrapy.settings.SETTINGS_PRIORITIES 设置Scrapy中使用的默认设置优先级的键名和优先级的字典。 每个项目定义一个设置入口点,为其提供标识的代码名称和整数优先级。在设置和检索Settings类中的值时,更高优先级优先于较小优先 级。 SETTINGS_PRIORITIES = { ‘default’: 0, ‘command’: 10, ‘project’: 20, ‘spider’: 30, ‘cmdline’: 40, }   有关每个设置源的详细说明,请参阅: 设置。 scrapy.settings.get_settings_priority

使用Feed导出时,您可以使用URI (通过FEED_URI设置)定义存储Feed的位置。Feed导出支持多种存储后端类型,这些类型由URI方案定义。 支持开箱即用的存储后端是: 本地文件系统 FTP S3(需要 botocore或 boto) 标准输出 如果所需的外部库不可用,则某些存储后端可能不可用。例如,S3后端仅在安装了botocore 或boto库时才可用(Scrapy 仅在Python 2上支持boto)。   存储URI参数 存储URI还可以包含在创建订阅源时替换的参数。这些参数是: %(time)s – 在创建订阅源时,将替换为时间戳 %(name)s &

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

classscrapy.loader.ItemLoader([item,selector,response,]** kwargs ) 返回一个新的Item Loader来填充给定的Item。如果没有给出项目,则使用该类自动实例化一个项目 default_item_class。 当使用选择器或响应参数进行实例化时,ItemLoader该类提供了使用选择器从网页中提取数据的便利机制。 参数: 项(Item对象) -项目实例来填充利用后续调用 add_xpath(),add_css()或add_value()。 selector(Selectorobject) – 使用add_xpath

声明项目加载器 通过使用类定义语法将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

Item Loader包含一个输入处理器和一个输出处理器,用于每个(item)字段。输入处理器只要它接收处理所提取的数据(通过add_xpath(),add_css()或 add_value()方法)和输入处理器的结果被收集和保持在ItemLoader内部。收集所有数据后,ItemLoader.load_item()调用该 方法来填充并获取填充的 Item对象。这是在使用先前收集的数据(并使用输入处理器处理)调用输出处理器时。输出处理器的结果是分配给项目的最终值。 让我们看一个例子来说明如何为特定字段调用输入和输出处理器(同样适用于任何其他字段): l = ItemLoader(Product

项目加载程序提供了一种方便的机制来填充已删除的项目。尽管可以使用他们自己的类字典API来填充项目,但是项目加载器通过自动执行一些常见任务(例如在分配原始提取数据之前解析原始提取数据),提供了一种更方便的API,用于从抓取过程中填充它们。 换句话说,Items提供了抓取数据的容器,而Item Loaders提供了填充该容器的机制。 项目加载器旨在提供灵活,高效和简单的机制,用于通过蜘蛛或源格式(HTML,XML等)扩展和覆盖不同的字段解析规则,而不会成为维护的噩梦。 使用项目加载器填充项目 要使用Item Loader,必须先实例化它。您可以使用类似dict的对象(例如Item或dict)实例化

命令行工具 版本0.10中的新功能。 Scrapy通过scrapy命令行工具进行控制,在此称为“Scrapy工具”,以区别于子命令,我们称之为“命令”或“Scrapy命令”。 Scrapy工具提供了多个命令,用于多种用途,每个命令都接受一组不同的参数和选项。 (该命令已在1.0中删除,有利于独立。请参阅部署项目。) scrapy deployscrapyd-deploy scrapy bench scrapy startproject name    //创建项目,在项目外操作,自动建目录 scrapy genspider -t basic name 11.com  //创建文件,在项目内目录