实现爬虫时最经常提到的需求就是能合适的保存爬取到的数据,或者说,生成一个带有爬取数据的”输出文件”(通常叫做”输出feed”),来供其他系统使用。 Scrapy自带了Feed输出,并且支持多种序列化格式(serialization format)及存储方式(storage backends)。

可以通过 FEED_EXPORTERS 设置扩展支持的属性。

JSONFEED_FORMATjson • 使用的exporter: JsonItemExporter • 大数据量情况下使用JSON请参见 这个警告

JSON linesFEED_FORMATjsonlines • 使用的exporter: JsonLinesItemExporter

CSVFEED_FORMATcsv • 使用的exporter: CsvItemExporter

XMLFEED_FORMATxml • 使用的exporter: XmlItemExporter

PickleFEED_FORMATpickle • 使用的exporter: PickleItemExporter

MarshalFEED_FORMATmarshal • 使用的exporter: MarshalItemExporter

存储

使用feed输出时您可以通过使用 URI (通过 FEED_URI 设置) 来定义存储端。 feed输出支持URI方式支持的多种存储后端类型。

自带支持的存储后端有:

  1. 本地文件系统
  2. FTP
  3. S3 (需要 boto)
  4. 标准输出

有些存储后端会因所需的外部库未安装而不可用。例如,S3只有在 boto 库安装的情况下才可使用。