繁体   English   中英

Scrapy - 为项目中的特定蜘蛛(而不是其他蜘蛛)使用提要导出器

[英]Scrapy - Use feed exporter for a particular spider (and not others) in a project

环境:Windows7、Python 3.6.5、Scrapy 1.5.1

问题描述:

我有一个名为project_github的爬虫项目,其中包含 3 个蜘蛛: spider1spider2spider3 这些蜘蛛中的每一个都将数据从特定网站个人抓取到该蜘蛛。

我试图在执行特定蜘蛛时自动导出一个 JSON 文件,格式为: NameOfSpider_TodaysDate.json ,以便从命令行我可以:

执行脚本scrapy crawl spider1返回spider1_181115.json

目前我在settings.py使用ITEM EXPORTERS和以下代码:

import datetime
FEED_URI = 'spider1_' + datetime.datetime.today().strftime('%y%m%d') + '.json'
FEED_FORMAT = 'json'
FEED_EXPORTERS = {'json': 'scrapy.exporters.JsonItemExporter'}
FEED_EXPORT_ENCODING = 'utf-8'

显然这段代码总是写spider1_TodaysDate.json而不管使用的蜘蛛......有什么建议吗?

这样做的方法是将custom_settings定义为特定蜘蛛下的class属性,正在为其编写项目导出器。 Spider 设置会覆盖项目设置。

所以,对于spider1

class spider1(scrapy.Spider):
    name = "spider1"
    allowed_domains = []

    custom_settings = {
        'FEED_URI': 'spider1_' + datetime.datetime.today().strftime('%y%m%d') + '.json',
        'FEED_FORMAT': 'json',
        'FEED_EXPORTERS': {
            'json': 'scrapy.exporters.JsonItemExporter',
        },
        'FEED_EXPORT_ENCODING': 'utf-8',
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM