将爬取的数据保存到Excel表格

您所在的位置:网站首页 怎么把爬虫后的数据制作成表格 将爬取的数据保存到Excel表格

将爬取的数据保存到Excel表格

2023-08-24 15:39| 来源: 网络整理| 查看: 265

1、普通函数方法版

将爬取的数据保存到excel表格 , 数据会比较直观。下面以保存python的关键词为例,介绍将数据保存到excel的详细流程。

第一步、导入模块

import xlwt # 导入写入excel需要的包

第二步、定义函数,将爬取好的数据保存到excel文件中。

def write_to_excel(filename, lst): # 为防止写入失败,捕获异常 try: # 1 创建一个workbook,相当于创建excel文件 work_book = xlwt.Workbook(encoding='utf-8') # 2 创建一个sheet表单 sheet = work_book.add_sheet('python_word') # python_word 为表的名字 # 3,写表头 heads = ['英文', '中文'] for i in range(len(heads)): sheet.write(0, i, heads[i]) # write(行,列,内容) 行,列都是默认 0 开始 # 4,写入内容 j = 1 # 从第二行开始 for item in lst: sheet.write(j, 0, item['en']) # 第二行,第一列 sheet.write(j, 1, item['zh']) # 第二行,第二列 j += 1 # 5,保存文件 work_book.save(filename) print('写入成功') except Exception: print('写入失败')

第三步、传入文件名、爬取的列表格式数据两个实参,调用函数,大功告成。

2、升级版,封装成模块

工作中,由于我们爬取的数据量时非常庞大的,将爬取的数据全部先保存到列表后,再写入excel,由于列表的底层结构是基于数组实现的,一旦存储的数据非常大的时候,写入的性能会受到影响。所以等列表储存到一定量的数据后,先写入到excel,再清空列表,保证列表的写入效率。所以在定义方法时,可以定义首次写入和追加写入两种方法。

爬取好的数据要保存到excel中,可以直接调用定义好的类方法,传入文件名和数据列表两个参数,就可以保存到excel中。还可以将该脚本封装成包模块(有__init__.py)文件,放到自己的python解释器安装的目录下的\Lib\site-packages目录下(C:\Anaconda3\Lib\site-packages),就可以作为内置模块使用,导入方式:from excel_utils.excel_utils import Excel_util

# 下载安装 pip install xlutils from xlutils.copy import copy import xlwt import xlrd class Excel_util(object): # 首次写入方法 @staticmethod # 就可以不需要实例化,直接类名.方法名,就可以调用方法 def write_to_excel(path, info_list): ''' :param path: xls文件路径 :param info_list: [item1,item]item{} :return: ''' # 创建workbook workbook = xlwt.Workbook(encoding='utf-8') # 创建sheet sheet = workbook.add_sheet('parse_data') # 写表头 heads = [key for key in info_list[0].keys()] # 遍历出字典中的key print(heads) for i in range(len(heads)): sheet.write(0,i,heads[i]) j = 1 for item in info_list: # print(item) # 是字典,使用枚举enumerate可以同时获得索引,键和值 for r,key in enumerate(item.keys()): sheet.write(j,r,item[key]) j += 1 workbook.save(path) print('第一次写入成功!') # 后续追加写入的方法 @staticmethod def write_to_excel_append(path, info_list): workbook = xlrd.open_workbook(path) # 打开工作簿 sheets = workbook.sheet_names() # 获取工作簿中的所有表格 worksheet = workbook.sheet_by_name(sheets[0]) # 获取工作簿中所有表格中的的第一个表格 rows_old = worksheet.nrows # 获取表格中已存在的数据的行数 new_workbook = copy(workbook) # 将xlrd对象拷贝转化为xlwt对象 new_worksheet = new_workbook.get_sheet(0) # 获取转化后工作簿中的第一个表格 i = rows_old # print(i) for item in info_list: for j, key in enumerate(item.keys()): new_worksheet.write(i, j, item[key]) i += 1 new_workbook.save(path) # 保存工作簿 print("追加写入成功!")


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3