Python 用代码设置输出文件

Python 用代码设置输出文件,python,python-2.7,scrapy,Python,Python 2.7,Scrapy,我将scrapy与python结合使用 我可以在cmd中设置输出json文件。但现在我需要在代码中这样做 我试过这个: 在背景中 蜘蛛侠 注 我正在开发一个简单的spider,所以我只需要物品导出器,不需要创建任何物品管道 感谢您的帮助答案可以在Scrapy文档中的一个示例中找到。通过编写正确的项目管道,可以输出为任何格式,如下所示: import json class JsonWriterPipeline(object): def __init__(self): s

我将scrapy与python结合使用

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

我试过这个:

在背景中 蜘蛛侠 注 我正在开发一个简单的spider,所以我只需要物品导出器,不需要创建任何物品管道


感谢您的帮助

答案可以在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项目设置文件中包含此管道。

是否找到了此管道?@Dagrooms是的,但实际上我现在不记得了,因为我使用的管道将数据写入文件系统中的JSON文件和云上的数据库。没问题,我让我的工作,但我需要的xml格式无论如何。
def __init(self):
    settings.overrides['FEED_URI'] = 'output.json'
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