笨鸟编程-零基础入门Pyhton教程

 找回密码
 立即注册

Feed 导出

发布者: 笨鸟自学网



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支持的内置饲料导出器的dict。您可以通过分配 None 到其序列化格式 FEED_EXPORTERS . 例如,要禁用内置的csv导出器(不替换),请将其放入 settings.py ::

FEED_EXPORTERS = {
    'csv': None,
}

FEED_EXPORT_BATCH_ITEM_COUNT

2.3.0 新版功能.

违约: 0

如果分配了一个大于 0 ,Scrapy生成多个输出文件,每个输出文件中最多存储指定数量的项。

生成多个输出文件时,必须在提要URI中至少使用以下一个占位符来指示如何生成不同的输出文件名:

  • %(batch_time)s -在创建源时被时间戳替换(例如。 2020-03-28T14-45-08.237134 )

  • %(batch_id)d -替换为批处理的从1开始的序列号。

    使用 printf-style string formatting 改变数字格式。例如,要根据需要引入前导零,使批次标识为5位数字,请使用 %(batch_id)05d (例如) 3 变成 00003 , 123 变成 00123 )

例如,如果您的设置包括:

FEED_EXPORT_BATCH_ITEM_COUNT = 100

你的呢 crawl 命令行是:

scrapy crawl spidername -o "dirname/%(batch_id)d-filename%(batch_time)s.json"

上面的命令行可以生成如下目录树:

->projectname
-->dirname
--->1-filename2020-03-28T14-45-08.237134.json
--->2-filename2020-03-28T14-45-09.148903.json
--->3-filename2020-03-28T14-45-10.046092.json

其中第一个和第二个文件正好包含100个项目。最后一个包含100个项目或更少。

FEED_URI_PARAMS

违约: None

包含函数导入路径的字符串,用于设置要应用的参数 printf-style string formatting 到源URI。

函数签名应如下所示:

scrapy.extensions.feedexport.uri_params(paramsspider)

返回A dict 要应用于提要URI的键值对 printf-style string formatting .

参数
  • params (dict) -- 具体而言,默认键-值对:- batch_id: ID of the file batch. See FEED_EXPORT_BATCH_ITEM_COUNT. If FEED_EXPORT_BATCH_ITEM_COUNT is 0batch_id is always 1. .. versionadded:: 2.3.0 - batch_time: UTC date and time, in ISO format with : replaced with `` -。看见 :setting:`FEED_EXPORT_BATCH_ITEM_COUNT` 。。。添加的版本::2.3.0- ``time : batch_time ,并将微秒设置为 0 。

  • spider (scrapy.Spider) -- 源蜘蛛的饲料项目

例如,要包括 name 提要URI中的源爬行器的名称:

  1. 在项目的某个地方定义以下函数:

    # myproject/utils.py
    def uri_params(params, spider):
        return {**params, 'spider_name': spider.name}
    
  2. Point FEED_URI_PARAMS 到您设置中的函数::

    # myproject/settings.py
    FEED_URI_PARAMS = 'myproject.utils.uri_params'
    
  3. 使用 %(spider_name)s 在你的源URI中:

    scrapy crawl <spider_name> -o "%(spider_name)s.jl"
12345678
上一篇:项目管道下一篇:请求和响应

Archiver|手机版|笨鸟自学网 ( 粤ICP备20019910号 )

GMT+8, 2024-11-21 21:02 , Processed in 0.203399 second(s), 29 queries .

© 2001-2020

返回顶部