在代码中设置scrapy的输出文件
我正在用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项目设置文件中包含这个管道。