大家好!我是风哥,一个喜欢折腾Python的资深工程师。今天咱聊聊爬虫数据保存到Excel的几种姿势。作为一个经常和Excel打交道的开发者,我把踩过的坑和实用技巧都总结给大家,保证你看完就能上手!
xlwt - 简单粗暴型
xlwt就像咱们的老朋友,虽然有点过时但用起来贼简单。三两行代码就能把数据塞进Excel:
1import xlwt
2
3wb = xlwt.Workbook()
4sheet = wb.add_sheet('爬虫数据')
5# 写个表头
6sheet.write(0, 0, '商品名')
7sheet.write(0, 1, '价格')
8# 塞点数据
9sheet.write(1, 0, '机械键盘')
10sheet.write(1, 1, 299)
11wb.save('淘宝数据.xls')
说句实话,xlwt就是个老古董,只能搞xls格式,还有65535行的限制。不过小项目用用完全够了。
温馨提示:🌟 想写中文别忘了设置编码:
1wb = xlwt.Workbook(encoding='utf-8')
openpyxl - 多功能型
要说功能强大,那得是openpyxl。它不光能处理xlsx格式,还能玩转样式、公式、图表这些花活:
1from openpyxl import Workbook
2from openpyxl.styles import Font
3
4wb = Workbook()
5ws = wb.active
6# 数据往里怼就完事了
7ws.append(['商品名', '价格'])
8ws.append(['机械键盘', 299])
9# 整点花活
10ws['A1'].font = Font(bold=True, color="FF0000")
11wb.save('淘宝数据.xlsx')
就是写入大量数据时有点慢,得耐心等等。不过功能齐全,值了!
pandas - 省心省力型
pandas就像是Excel界的大魔王,特别是处理DataFrame格式的数据时简直不要太爽:
1import pandas as pd
2
3# 假设爬到的数据长这样
4data = {
5 '商品名': ['机械键盘', '游戏鼠标', '显示器'],
6 '价格': [299, 199, 999]
7}
8df = pd.DataFrame(data)
9
10# 一行代码搞定
11df.to_excel('淘宝数据.xlsx', index=False)
还能直接读Excel进行数据分析,简直不要太方便:
1df = pd.read_excel('淘宝数据.xlsx')
2# 算个平均价格啥的
3average_price = df['价格'].mean()
温馨提示:🌟 用pandas前记得装openpyxl:
1pip install openpyxl
实战小技巧
处理大量数据时,用追加模式能省不少内存:
1from openpyxl import load_workbook
2
3wb = load_workbook('淘宝数据.xlsx')
4ws = wb.active
5for item in crawled_data: # crawled_data是爬到的数据
6 ws.append([item['name'], item['price']])
7 # 每1000条保存一次,保险
8 if ws.max_row % 1000 == 0:
9 wb.save('淘宝数据.xlsx')
10wb.save('淘宝数据.xlsx')
别忘了处理下异常,避免程序半路翻车:
1try:
2 wb.save('淘宝数据.xlsx')
3except PermissionError:
4 print('哎呀,Excel被占用了,关掉再试试~')
5except Exception as e:
6 print(f'糟糕,出错了:{str(e)}')
今天的Python干货分享就到这啦!代码都是我实战中总结的,记得自己动手试试。有问题随时在评论区问我,咱们一起进步!别忘了点个赞,下次给大家带来更多Python爬虫的秘籍!