爬虫蜘蛛项目导出器Feed Exports之存储后端Storage backends(32)python SCRAPY最新教程1.51以上版本
本地文件系统
订阅源存储在本地文件系统中。
请注意,对于本地文件系统存储(仅限),如果指定类似的绝对路径,则可以省略该方案/tmp/export.csv
。这仅适用于Unix系统。
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导出的设置:
FEED_URI
(强制)FEED_FORMAT
FEED_STORAGES
FEED_EXPORTERS
FEED_STORE_EMPTY
FEED_EXPORT_ENCODING
FEED_EXPORT_FIELDS
FEED_EXPORT_INDENT
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。您可以通过分配None
其URI方案 来禁用任何这些后端FEED_STORAGES
。例如,要禁用内置FTP存储后端(无需替换),请将其放在settings.py
:
FEED_STORAGES = {
'ftp': None,
}
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,
}