Python---20行代码爬取斗鱼平台房间数据(下)

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

上一篇中,已经详细的讲解了如何获取数据,接下来是深度处理数据,这里调用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未发生异常

模块的具体用法可以参考这两个网站(感谢这两个网站提供解释):
官方xlsxwriter解释
CSDN吴芒果:XlsxWriter模块实现Excel操作


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文件
img_1936923b26b58036add52fedc2714b3f.png
运行结果

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('斗鱼房间数据已保存')
img_9eaffe96227c164921f952bb5914241d.png
主播、房间号、房间名、热度
  • 后续可以使用Excel的排序,制表等功能来处理数据,或者用BDP来处理!

有发现错误或看不懂的可以在评论区提出,一定会第一时间回复你!
如对你有帮助记得关注点赞哦!

目录
相关文章
|
4天前
|
数据处理 Python
如何使用Python的Pandas库进行数据排序和排名
【4月更文挑战第22天】Pandas Python库提供数据排序和排名功能。使用`sort_values()`按列进行升序或降序排序,如`df.sort_values(by='A', ascending=False)`。`rank()`函数用于计算排名,如`df['A'].rank(ascending=False)`。多列操作可传入列名列表,如`df.sort_values(by=['A', 'B'], ascending=[True, False])`和分别对'A'、'B'列排名。
14 2
|
6天前
|
并行计算 C语言 开发者
优化Python代码的五大技巧
Python作为一种流行的编程语言,在各种应用场景中广泛使用。然而,随着项目规模的增长和需求的变化,Python代码的性能和可维护性也成为了关键问题。本文将介绍优化Python代码的五大技巧,帮助开发者提升代码效率和质量。
|
2天前
|
机器学习/深度学习 数据挖掘 网络架构
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
Python对商店数据进行lstm和xgboost销售量时间序列建模预测分析
15 0
|
3天前
|
机器学习/深度学习 算法 数据挖掘
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享-2
PYTHON银行机器学习:回归、随机森林、KNN近邻、决策树、高斯朴素贝叶斯、支持向量机SVM分析营销活动数据|数据分享
27 1
|
2天前
|
机器学习/深度学习 算法 算法框架/工具
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
数据分享|PYTHON用KERAS的LSTM神经网络进行时间序列预测天然气价格例子
23 0
|
22小时前
|
机器学习/深度学习 存储 监控
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
数据分享|Python卷积神经网络CNN身份识别图像处理在疫情防控下口罩识别、人脸识别
|
23小时前
|
机器学习/深度学习 数据采集 算法
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
Python信贷风控模型:Adaboost,XGBoost,SGD, SVC,随机森林, KNN预测信贷违约支付|数据分享
|
1天前
|
机器学习/深度学习 人工智能 算法
机械视觉:原理、应用及Python代码示例
机械视觉:原理、应用及Python代码示例
|
1天前
|
JSON 数据可视化 定位技术
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
python_将包含汉字的字典数据写入json(将datav的全省数据中的贵州区域数据取出来)
4 0
|
1天前
|
存储 缓存 算法
优化Python代码性能的7个技巧
在日常的Python开发中,优化代码性能是一个重要的课题。本文介绍了7个实用的技巧,帮助开发者提高Python代码的执行效率,包括利用生成器表达式、使用适量的缓存、避免不必要的循环等。通过本文的指导,读者可以更好地理解Python代码性能优化的方法,提升自身的编程水平。