一: 将数据写入json文件
"""
逻辑:
import codecs, json, os
1. 创建pipeline类, 继承object
class JSONWriterPipeline(object):
2. 重写初始化函数, 初始化文件句柄对象, 写入一个[左中括号
def __init__(self):
self.file =codecs.open('xxx.json', 'w+', encoding='utf-8')
self.file.write('[')
3. 实现process_item函数, 将item转换字典, 在转化为json字符串, 写入文件, 写入逗号, 返回item
def process_item(self, item, spider):
item = dict(item)
json_str = json.dumps(item)
self.file.write(json_str)
self.file.write(',')
4. 实现close_spider函数, 将最后一个逗号取出, 写入]右中括号, 关闭文件
def close_spider(self, spider):
self.file.seek(-1, os.SEEK_END)
self.file.truncate()
self.file.write(']')
self.file.close()
5. 在settings中配置pipeline, 设置优先级
ITEM_PIPELINES = {
'XXXX.pipelines.JSONWriterPipeline': 1
}
"""
二: 将数据保存到表格中
"""
逻辑(与json存入基本一致):
import xlwt
1. 创建pipeline类继承object
class ExcelPipeline(object):
2 . 重写初始化函数, 做准备工作
def __init__(self):
self.workbook = xlwt.Workbook(encoding='utf-8')
self.sheet = self.workbook.add_sheet('xxx')
self.sheet.write(0, 0, 'xxxx')
self.count = 1
3. 实现process_item函数, 做写入操作
def process_item(self, item, spider):
self.sheet.write(self.count, 0, item['xxxx'])
self.count += 1
return item
4. 实现close_spider, 做关闭操作
def close_spider(self, spider):
self.workbook.save('xxxxxx')
"""