我正在使用 scrapy 和 python
我可以在cmd中设置输出json文件。但现在我需要在代码中做到这一点。
我试过这个:
在设置中
FEED_EXPORTERS = {
'jsonlines': 'scrapy.contrib.exporter.JsonLinesItemExporter',
}
FEED_FORMAT = 'jsonlines'
在蜘蛛中
def __init(self):
settings.overrides['FEED_URI'] = 'output.json'
注意事项
我正在开发一个简单的蜘蛛,所以我只需要 Item Exporter,我不需要创建任何项目管道。
感谢帮助
最佳答案
答案可以在 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 项目设置文件中。
关于python - scrapy 在代码中设置输出文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23363186/