Python---20行代码爬取斗鱼平台房间数据(下)
在上一篇中,已经详细的讲解了如何获取数据,接下来是深度处理数据,这里调用
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文件
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来处理!
有发现错误或看不懂的可以在评论区提出,一定会第一时间回复你!
如对你有帮助记得关注点赞哦!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
数据绑定(二)把控件作为Binding源
原文: 数据绑定(二)把控件作为Binding源 下面的代码把一个TextBox的Text属性关联在了Slider的Value属性上 <Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib" Title="MainWindow" Height="244" Width="412"> <StackPanel> <TextBox x:Name="textBox1" Text="{Binding ElementName=slider1, Path=Value}"></TextBox> <Slider x:Name="slider1" Maximum="100" Minim...
- 下一篇
bootstrap中container类和container-fluid类的区别
container和container-fluid到底什么区别。 查了很多资料,看到很多人和我有同样的疑问,但是下面的回答一般都是一个是响应式一个宽度是百分百 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Hello World</title> <link rel="stylesheet" type="text/css" href="css/bootstrap.min.css"> </head> <body> <div class="container"> <h3>hello world<...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Mario游戏-低调大师作品