在上一篇中,已经详细的讲解了如何获取数据,接下来是深度处理数据,这里调用xlsxwriter库来制作Excel表格。

工具:Python3.6.5,Pycharm

1.模块介绍

XlsxWriter模块具有的功能:

100%兼容Excel的*.xlsx文件,支持Excel2003,Excel2007等版本

(Excel2003-和Excel2007的拓展名为*.xls)

支持所有Excel单元格数据格式

单元格合并、批注、自动筛选、丰富多格式字符串等

支持工作表JPG、PNG图像,自定义图标

内存优化模式支持写入大文件

2.模块安装

pip install xlsxwriter

# 在命令行中输入此代码

# 目前最新版本为1.0.0,官网文档介绍支持Python2.5-3.5,但目前使用Python3.6未发生异常

3.模块使用

import xlsxwriter

workbook = xlsxwriter.Workbook('Demo1.xlsx') # 创建一个名为‘Demo1.xlsx’的工作表

worksheet = workbook.add_worksheet() # 创建一个工作表对象

worksheet.set_column('A:A', 20) # 设定第一列(A)的宽度为20px

# bold = workbook.add_format({'blod': True})

worksheet.write('A1', 'Hello World!') # A1单元格写入‘Hello World!’

worksheet.write('A2', '你好,世界!') # A2单元格写入‘你好,世界!’

# 行列表示法的单元格下标以0作为起始值,如‘3,0’等价于‘A4’

worksheet.write(2, 0, 123) # 使用列行表示法写入数字‘123’

worksheet.write(3, 0, 456) # 使用列行表示法写入数字‘456’

worksheet.write(4, 0, '=SUM(A3:A4)') # 求A3:A4的和,并写入‘4,0’,即‘A5’

worksheet.insert_image('A5', 'XLSX.png') # 在A5单元格插入图片

workbook.close() # 关闭Excel文件

运行结果

4.如何运用到上一篇(爬取斗鱼房间数据)中去

import requests

import json

import xlsxwriter

workbook = xlsxwriter.Workbook('E:\\DOUYU.xlsx')

worksheet = workbook.add_worksheet()

worksheet.set_column('A:A', 20)

worksheet.set_column('B:B', 10)

worksheet.set_column('C:C', 40)

worksheet.set_column('D:D', 10)

p = 0

urls = ['https://www.douyu.com/gapi/rkc/directory/2_1/{}'.format(page) for page in range(1, 5)]

for url in urls:

res = requests.get(url)

j = json.loads(res.text)

l1 = j['data']

l2 = l1['rl']

p = p+1

for i in range(len(l2)):

Anchor = l2[i]['nn'] # 获取主播名字

RoomNumber = l2[i]['rid'] # 获取房间号

Heat = l2[i]['ol'] # 获取热度

RoomName = l2[i]['rn'] # 获取房间名

worksheet.write(int(i+120*(p-1)), 0, Anchor)

worksheet.write(int(i+120*(p-1)), 1, RoomNumber)

worksheet.write(int(i+120*(p-1)), 2, RoomName)

worksheet.write(int(i+120*(p-1)), 3, Heat)

# i+120*(p-1):120是因为每一页有120个房间,本次爬取了5页房间数据,用了p = p+1来使得Excel表格能连续记录数据

# 当时遇到的问题:在不添加120*(p-1)时,发现只能爬取120个房间数据,再看了遍代码,发现数据是被覆盖了

workbook.close()

print('斗鱼房间数据已保存')

主播、房间号、房间名、热度

后续可以使用Excel的排序,制表等功能来处理数据,或者用BDP来处理!

有发现错误或看不懂的可以在评论区提出,一定会第一时间回复你!

如对你有帮助记得关注点赞哦!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐