scrapy优化json存储

1.相关笔记:


QQ截图20200601224814.png

2.示例代码:
(1)JsonItemExporter:

class ScrapyDemoPipeline(object):
    def open_spider(self, spider):
        # 使用JsonItemExporter时文件必须以二进制形式打开
        self.f = open('funs.json', 'wb')
        print('爬虫开始了...', spider)
        # 生成JsonItemExporter对象
        self.json_ex = JsonItemExporter(self.f, encoding='utf-8', ensure_ascii=False)
        # 调用start_exporting()表示准备导入
        self.json_ex.start_exporting()

    def process_item(self, item, spider):
        print('正在进行数据处理...', spider)
        # 调用export_item将要存储的item写入文件
        self.json_ex.export_item(item)
        return item

    def close_spider(self, spider):
        # 调用finish_exporting表示写入完成
        self.json_ex.finish_exporting()
        self.f.close()
        print('爬虫结束了...', spider)

(2)JsonLinesItemExporter:

class ScrapyDemoPipeline(object):
    def open_spider(self, spider):
        # 使用JsonItemExporter时文件必须以二进制形式打开
        self.f = open('funs.json', 'wb')
        print('爬虫开始了...', spider)
        # 生成JsonItemExporter对象
        self.json_ex = JsonLinesItemExporter(self.f, encoding='utf-8', ensure_ascii=False)
        # 使用JsonLinesItemExporter时不需要再调用开始方法
        # self.json_ex.start_exporting()

    def process_item(self, item, spider):
        print('正在进行数据处理...', spider)
        # 调用export_item将要存储的item写入文件
        self.json_ex.export_item(item)
        return item

    def close_spider(self, spider):
        # 使用JsonLinesItemExporter时不需要再调用结束方法
        # self.json_ex.finish_exporting()
        self.f.close()
        print('爬虫结束了...', spider)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。