scrapy在代码中设置输出文件

时间:2014-04-29 11:18:52

标签: python python-2.7 scrapy

我正在使用scthon与python

我可以在cmd中设置输出json文件。但现在我需要在代码中这样做。

我试过了:

设置中的

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

在蜘蛛

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

注意

我正在开发一个简单的蜘蛛,所以我只需要Item Exporter,我不需要创建任何项目管道。

感谢您的帮助

1 个答案:

答案 0 :(得分: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项目设置文件中包含此管道。