在代码中设置scrapy的输出文件

4 投票
1 回答
2166 浏览
提问于 2025-04-18 04:44

我正在用Python写scrapy。

我可以在命令行里设置输出的json文件,但现在我想在代码里做到这一点。

我试过这样做:

在设置里

FEED_EXPORTERS = {
 'jsonlines': 'scrapy.contrib.exporter.JsonLinesItemExporter',
}
FEED_FORMAT = 'jsonlines'

在爬虫里

def __init(self):
    settings.overrides['FEED_URI'] = 'output.json'

注意

我正在开发一个简单的爬虫,所以我只需要项目导出器,不需要创建任何项目管道。

谢谢你的帮助。

1 个回答

1

答案可以在Scrapy的文档示例中找到。你可以通过编写正确的项目管道,将数据输出到任何格式,具体方法如下:

import json

class JsonWriterPipeline(object):

    def __init__(self):
        self.file = open('items.jl', 'wb')

    def process_item(self, item, spider):
        line = json.dumps(dict(item)) + "\n"
        self.file.write(line)
        return item

请注意,你还需要在默认的Scrapy项目设置文件中包含这个管道。

撰写回答