首先需要安装下openpyxl,写入Excel是用的这个库
pip install openpyxl
根据需要存储的item字段写入到Sheet的第一行,假如存储的字段分别是sources,url,title的话,如下代码所示,会在wuliao.xlsx中新建一个ware_detail的Sheet来存放数据,通过isinstance判断item的类型,存储指定的item
from openpyxl import Workbook
'''
author: tieyongjie
'''
class ExcelPipeline(object):
def __init__(self):
self.wb = Workbook()
self.wb.create_sheet("ware_detail")
self.ws = self.wb["ware_detail"]
self.ws.append(
['sources', 'url', 'title'])
def process_item(self, item, spider):
if isinstance(item, FactoryMaterialItem):
self.ws.append([item['sources'], item['url'], item['title']])
return item
def __del__(self):
# 调用__del__() 销毁对象,释放其空间
self.wb.save('wuliao.xlsx')
最后需要在settings中打开 ITEM_PIPELINES 中存储Excel的管道就可以愉快的存储数据了,如下图
ITEM_PIPELINES = {
'HAHA.pipelines.ExcelPipeline': 300,
}