You are here:  Home » Python » 爬虫蜘蛛项目导出器Feed Exports之存储后端Storage backends(32)python SCRAPY最新教程1.51以上版本

本地文件系统

订阅源存储在本地文件系统中。

  • URI方案: file
  • 示例URI: file:///tmp/export.csv
  • 必需的外部库:无

请注意,对于本地文件系统存储(仅限),如果指定类似的绝对路径,则可以省略该方案/tmp/export.csv。这仅适用于Unix系统。

 

FTP

订阅源存储在FTP服务器中。

  • URI方案: ftp
  • 示例URI: ftp://user:pass@ftp.example.com/path/to/export.csv
  • 必需的外部库:无

 

S3

Feed存储在Amazon S3上。

  • URI方案: s3
  • 示例URI:
    • s3://mybucket/path/to/export.csv
    • s3://aws_key:aws_secret@mybucket/path/to/export.csv
  • 必需的外部库:botocore(Python 2和Python 3)或boto(仅限Python 2)

AWS凭证可以作为URI中的用户/密码传递,也可以通过以下设置传递:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

 

标准输出

Feed被写入Scrapy流程的标准输出。

  • URI方案: stdout
  • 示例URI: stdout:
  • 必需的外部库:无

设置

这些是用于配置Feed导出的设置:

 

FEED_URI

默认: None

导出Feed的URI。有关支持的URI方案,请参阅存储后端

启用Feed导出时需要此设置。

 

FEED_FORMAT

用于Feed的序列化格式。请参阅 序列化格式以获取可能的值。

 

FEED_EXPORT_ENCODING

默认: None

用于Feed的编码。

如果未设置或设置为None(默认),它将使用UTF-8用于除JSON输出之外的所有内容,JSON输出使用安全数字编码(\uXXXX序列)以用于历史原因。

utf-8如果您也想要UTF-8用于JSON,请使用。

 

FEED_EXPORT_FIELDS

默认: None

要导出的字段列表,可选。示例:。FEED_EXPORT_FIELDS = ["foo", "bar", "baz"]

使用FEED_EXPORT_FIELDS选项定义要导出的字段及其顺序。

当FEED_EXPORT_FIELDS为空或无(默认)时,Scrapy使用Item蜘蛛正在产生的dicts或子类中定义的字段。

如果导出器需要一组固定的字段(这是CSV导出格式的情况 )并且FEED_EXPORT_FIELDS为空或无,则Scrapy会尝试从导出的​​数据中推断字段名称 – 目前它使用第一个项目中的字段名称。

 

FEED_EXPORT_INDENT

默认: 0

用于在每个级别上缩进输出的空间量。如果FEED_EXPORT_INDENT 是非负整数,则数组元素和对象成员将使用该缩进级别进行漂亮打印。缩进级别0(默认值)或负数将把每个项目放在一个新行上。None选择最紧凑的表示。

目前仅由JsonItemExporter 和实施XmlItemExporter,即当您导出到.json.xml

 

FEED_STORE_EMPTY

默认: False

是否导出空的Feed(即没有项目的Feed)。

 

FEED_STORAGES

默认: {}

包含项目支持的其他Feed存储后端的dict。键是URI方案,值是存储类的路径。

 

FEED_STORAGES_BASE

默认:

{
    '': 'scrapy.extensions.feedexport.FileFeedStorage',
    'file': 'scrapy.extensions.feedexport.FileFeedStorage',
    'stdout': 'scrapy.extensions.feedexport.StdoutFeedStorage',
    's3': 'scrapy.extensions.feedexport.S3FeedStorage',
    'ftp': 'scrapy.extensions.feedexport.FTPFeedStorage',
}

 

包含Scrapy支持的内置Feed存储后端的dict。您可以通过分配NoneURI方案 来禁用任何这些后端FEED_STORAGES。例如,要禁用内置FTP存储后端(无需替换),请将其放在settings.py

FEED_STORAGES = {
    'ftp': None,
}

 

 

FEED_EXPORTERS

默认: {}

包含项目支持的其他导出器的dict。键是序列化格式,值是Item导出器类的路径。

 

FEED_EXPORTERS_BASE

默认:

{
    'json': 'scrapy.exporters.JsonItemExporter',
    'jsonlines': 'scrapy.exporters.JsonLinesItemExporter',
    'jl': 'scrapy.exporters.JsonLinesItemExporter',
    'csv': 'scrapy.exporters.CsvItemExporter',
    'xml': 'scrapy.exporters.XmlItemExporter',
    'marshal': 'scrapy.exporters.MarshalItemExporter',
    'pickle': 'scrapy.exporters.PickleItemExporter',
}

 

包含Scrapy支持的内置Feed导出器的dict。您可以通过分配None其序列化格式来禁用任何这些导出器FEED_EXPORTERS。例如,要禁用内置CSV导出器(无需替换),请将其放入settings.py

FEED_EXPORTERS = {
    'csv': None,
}