爬虫框架Scrapy(9)使用 Exporter 导出数据

本文介绍了Scrapy框架中如何使用Exporter导出数据,包括通过命令行参数和配置文件指定数据导出方式,以及如何添加自定义的Excel数据导出格式。详细讲解了Exporter的使用方法以及实现自定义Exporter的步骤。
摘要由CSDN通过智能技术生成

使用 Exporter 导出数据

在 Scrapy 中,负责导出数据的组件被称为 Exporter(导出器),Scrapy 内部实现了多个 Exporter,每个 Exporter 实现一种数据格式的导出,支持的数据格式如下(括号中为相应的 Exporter):

  • JSON (JsonItemExporter)
  • JSON lines (JsonLinesItemExporter)
  • CSV (CsvItemExporter)
  • XML (XmlItemExporter)
  • Pickle (PickleItemExporter)
  • Marshal (MarshalItemExporter)

其中,前 4 种是极为常用的文本数据格式,而后两种是 Python 特有的。在大多数情况下,使用 Scrapy 内部提供的 Exporter 就足够 了,需要以其他数据格式(上述6种以外)导出数据时,可以自行实现 Exporter。

1. 指定数据导出方法

在导出数据时,需向Scrapy爬虫提供以下信息:导出文件路径和导出数据格式(即选用哪个Exporter)。

可以通过以下两种方式指定爬虫如何导出数据:① 通过命令行参数指定;② 通过配置文件指定。

(1)命令行参数指定数据导出方式

在运行 scrapy crawl 命令时,可以分别使用 -o-t 参数指定导出文件路径以及导出数据格式。 -o 参数我们并不陌生,前面我们已经在多个实例中运用过。使用方式如下:

$ scrapy crawl books -o books.csv

其中,-o books.csv 指定了导出文件的路径,在这里虽然没有使用 -t 参数指定导出数据格式,但 Scrapy 爬虫通过文件后缀名推断出我们想以 CSV 作为导出数据格式。同样的道理,如果将参数改为 -o books.json ,Scrapy 爬虫就会以 json 作为导出数据格式。

需要明确地指定导出数据格式时,使用 -t 参数,例如:

$ scrapy crawl books -t csv -o books1.data
...
$ scrapy crawl books -t json -o books2.data
...
$ scrapy crawl books -t xml -o books3.data
...

运行以上命令后,Scrapy 爬虫会以 -t 参数中的数据格式字符串(如csv、json、xml)为键,在配置字典FEED_EXPORTERS 中搜索 Exporter,FEED_EXPORTERS 的内容由以下两个字典的内容合并而成:

  • 默认配置文件中的 FEED_EXPORTERS_BASE
  • 用户配置文件中的 FEED_EXPORTERS

前者包含内部支持的导出数据格式,后者包含用户自定义的导出数据格式。以下是 Scrapy 源码中定义的 FEED_EXPORTERS_BASE ,它位于 scrapy.settings.default_settings 模块:

FEED_EXPORTERS_BASE = {
   
    'json': 'scrap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值