一, 保存抓取到的数据为json文件.
首先新建一个专门保存json文件的pipieline类.
import codecs, json
# codecs类似于open,但会帮我们处理一些编码问题.
class JsonWithEncodingPipeline:
def __init__(self):
self.file = codecs.open('save_file.json', 'w', encoding='utf-8')
def process_item(self, item, spider):
lines = json.dumps(dict(item), ensure_ascii=False) + '\n'
self.file.write(lines)
return item
def spider_close(self, spider):
self.file.close()
上边是我们自己写的保存为json的功能,scrapy也提供了专门保存json的功能
from scrapy.exporters import JsonItemExporter
# exporters.py模块中还有csv, xml,pickle,marshal等文件的保存类
class JsonExporterPipeline:
def __init__(self):
self.file = open('save_file.json', 'wb')
self.exporter = JsonItemExporter(self.file, encoding='utf-8',ensure_ascii=Fal