1.相关笔记:
![](https://img.haomeiwen.com/i13269643/fbf98ce8fb5ee5cf.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)
网友评论