python - scrapy 在代码中设置输出文件

标签 python python-2.7 scrapy

我正在使用 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/

相关文章:

python-3.x - python中通过爬取子URL来下载文件

python - 如何在python中对文件中的内容进行排序

python - 使用 RDFib 创建数据转储并将数据添加到图表中而无需迭代

python - 如何在 Python 中覆盖方法对象的 __call__ 方法?

python - 如何设置字体大小或标签大小以适合所有设备

python - 将 wxPanel 保存到图像

python - 通过 websockets 抓取数据

python - 具有不允许分配和不可解矩阵的匈牙利方法

python - Django Tastypie 记录级授权

python - Scrapy属性错误: 'Selector' object has no attribute 'extract_first'