scrapy 有没有一种方法可以不使用-o -t参数打印json文件

yqyhoc1h  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(120)

我通常这样称呼我的蜘蛛:

scrapy crawl Spider -o fileName -t json

并且我在fileName文件中打印了json格式的正确数据。
现在我想这样称呼我的蜘蛛:

scrapy crawl Spider

我的问题

是否有一种方法可以不使用-o -t参数就将输出打印到文件中?

ruarlubt

ruarlubt1#

是的,可以这样做。添加到您的设置

FEED_EXPORTERS = {
 'jsonlines': 'scrapy.contrib.exporter.JsonLinesItemExporter',
}
FEED_FORMAT = 'jsonlines'
FEED_URI = "NAME_OF_FILE.json"

供参考
http://doc.scrapy.org/en/latest/topics/feed-exports.html

hof1towb

hof1towb2#

下面是我在 Scrapy 2.6.1 中的做法

def open_spider(self, spider: YellowpagesCategorySpiderSpider):
    feeds = spider.settings.attributes['FEEDS'].value
    output_file_names = list(feeds)
    if len(output_file_names) > 1:
        raise RuntimeError(f"Only one output file is allowed, but {len(output_file_names)} were found")
    self.output_file_name = output_file_names[0]

相关问题