Python爬虫大作业(仿虎牙直播客户端)
已购用户必看
2022-11-27更新
在【四、作业实现成果】下,新增了【代码更新】,修复了一些原因引起的bug,该bug曾导致部分直播间的标题异常丢失。2022-12-10更新
在【四、作业实现成果】下,新增了【更新直播分区】,可以使得已购买用户根据自身需要更改直播的内容分区。
一、大作业要求
结合所选专业方向(信息处理、嵌入式、人工智能、大数据处理),用所学Python技术设计并实现一个与专业方向技术相关的、功能完整的系统,并撰写总结报告。
实现要求:
(1)实现涵盖以下技术:
- 图形界面、
- 多线程、
- 文件操作、
- 数据库编程、
- 网页爬虫、
- 异常处理。
A可侧重于应用系统,结合爬虫丰富系统功能,提升用户体验。
B可考虑实现物联网。
C可侧重于爬取网站图片,并进行图形或图像识别。
D可侧重于基于爬虫进行数据采集,并进行数据的统计分析。
(2)系统具有一定复杂度。爬取图片不少于500张。采集数据不少于1000条,统计分析的目标不能少于3个。其中每项均可根据需求进行增添或删减。
二、设计方案
1、设计了虎牙主页的爬虫,包括直播间封面、主播名、人气、直播间标题、主播id、主播房间号等信息。
另附虎牙直播分类页面进行对比查阅:虎牙直播分类
2、使用python3实现爬取数据,使用sqlite3模块进行数据存储,本地化存储,不需要额外安装数据库软件,但相应的不能可视化操作数据库内容;使用plt模块进行数据的绘图,使用tkinter模块实现界面。
3、通过tkinter的绑定事件,实现了单击列名可使列表按字符升序(降序)排列;实现了单击某一主播会在软件主页面更新页面图片,双击时会在浏览器打开该主播的直播间;实现了快捷键绑定,如F5刷新列表,Ctrl+F聚焦搜索框;实现了主播列表里的搜索功能,可通过Ctrl+F快捷键快速搜索;实现了单击页面图片可在浏览器跳转到对应主播的直播间
三、软件支持
- Windows 10 操作系统(理论上对Windows版本无要求)
- Visual Studio 2022 Community(2017发行版及以上)
- Python3开发环境(笔者本人版本号为3.9.5)
四、作业实现成果
英雄联盟分类下的运行界面↓
切换游戏列表为穿越火线分类下的运行界面↓
人气范围统计图功能展示↓
人气对比图功能展示↓
英雄联盟分类下人气Top10榜单功能展示↓
主播列表按"主播"列字符降序排列↓
主播列表按"人气"列浮点数降序排列↓
单击单个主播功能展示↓
代码说明
运行代码前需要更改图中所示的变量,确保路径有效,文件存在,否则运行会报错。
代码更新
已经购买了资源的各位,请在代码的第342行左右找到这两个函数,复制以下代码并粘贴替换掉原来的几行。(不修改不影响使用,只是有些直播间的标题会缺失,除此之外的功能都一切正常。)
def listUpdate(self, *args):# 更新列表,获取当前列表的成员,根据菜单栏中的字符串对比字典得到对应游戏的主播列表# 清空列表并将主播列表中的主播逐个添加if args:gameiList = gamesDict[games[args[0]]]else:gameiList = gamesDict[slbarVal.get()]clearTreeview(tree)for i in gameiList:if(i['roomName']):newItem = [i['nick'], i['totalCount'], i['roomName'], i['uid'], i['privateHost']]else:newItem = [i['nick'], i['totalCount'], i['introduction'], i['uid'], i['privateHost']]tree.insert('', END, value=newItem)def initList():for i in game1List:if(i['roomName']):newItem = [i['nick'], i['totalCount'], i['roomName'], i['uid'], i['privateHost']]else:newItem = [i['nick'], i['totalCount'], i['introduction'], i['uid'], i['privateHost']]tree.insert('', END, value=newItem)
运行代码需要确保代码所需的包都已经下载,方式是
python3
pip install xxxxx
[更改直播分区]
- 如果想要更改默认选取的三个分区,可以前往虎牙的网站查看想更改的分区的编号,并更改代码相应部分。
- 如当想要选择“炉石传说”时,在地址栏找到对应编号,此处为“993”,其它分区同理。
- 在代码的520行左右找到game1Url,并更改其内容中的gameId=后面的那些编号,改成上一步复制的编号,随后在下方games处更改对应的分区名字即可
- 最终效果如图
附件
代码及文件:代码及附件(付费资源)
Python爬虫大作业(仿虎牙直播客户端)相关推荐
- python爬虫大作业任务书_爬虫大作业
通过 爬取2345电影网的电影信息 ,通过电影的类型和评分分别生成相应的词云 进行数据分析 一.准备过程 首先打开2345电影网的热播电影区,网址是https://dianying.2345.com/ ...
- python爬虫大作业爬多少数据_爬虫大作业
1.选一个自己感兴趣的主题(所有人不能雷同). 2.用python 编写爬虫程序,从网络上爬取相关主题的数据. 3.对爬了的数据进行文本分析,生成词云. 4.对文本分析结果进行解释说明. 5.写一篇完 ...
- Python爬虫大作业+数据可视化分析(抓取python职位)
目录 一.抓取并解析数据 1.导入相关库 2.获取网页信息 3.数据清洗 4.爬取结果: ??二.保存数据 1.保存到excel中 2.保存到数据库中 ? ?3.调用 三.使用flask,实现可视化 ...
- 大学web基础期末大作业~仿品优购商城页面制作(HTML+CSS+JavaScript)
HTML网页设计期末课程大作业~~仿品优购页面制作(HTML+CSS+JavaScript) 关于HTML期末网页制作,大作业A+水平 ~仿品优购网页作业HTML+CSS+JavaScript实现,共 ...
- 好家伙!清华电子系大一暑假Python课程大作业上知乎热榜!竟是个CV任务
点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 编辑:Amusi | 来源:知乎 https://www.zhihu.com/question/4719 ...
- HTML期末大作业~仿小米商城网页设计模板(HTML+CSS+JavaScript)
HTML期末大作业~基于HTML+CSS+JavaScript仿小米商城(功能齐全) 关于HTML期末网页制作,大作业A+水平 ~仿小米商城网页作业HTML+CSS+JavaScript实现,共有登录 ...
- Python程序设计 大作业 简化的PS
查看原文 Python程序设计 作业 海龟绘图 文本处理 分组游戏设计 数字照片墙 送你一首集句诗 简化的PS Python程序设计 大作业 简化的PS Python程序设计 作业 摘要 1. 项目背 ...
- HTML5+CSS大作业——仿新浪微博个人主(4页) html期末作业代码网页设计
HTML5+CSS大作业--仿新浪微博个人主(4页) 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体 ...
- HTML5+CSS大作业——仿新浪微博个人主(4页)
HTML5+CSS大作业--仿新浪微博个人主(4页) 常见网页设计作业题材有 个人. 美食. 公司. 学校. 旅游. 电商. 宠物. 电器. 茶叶. 家居. 酒店. 舞蹈. 动漫. 明星. 服装. 体 ...
最新文章
- Zookeeper和Redis实现分布式锁,附我的可靠性分析
- 进军“手机照相馆”:京东要和3C厂商干什么?
- android 时间轴动画教程,android 时间轴(listview实现) 源码
- 徐州联赛选拔赛 - 判断能否构成树
- ICCV 2019 开源论文 | 基于元学习和AutoML的模型压缩新方法
- 我删删删删库了,要跑路吗?
- 多线程中join()的用法
- 辍学的名人_辍学效果如此出色的5个观点
- css定位position
- mongodb 2php 操作
- React Native开发指南-在原生和React Native间通信
- 数组对象的filter方法
- 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止
- 单层工业厂房设计原理以及知识重点
- oracle lob值是什么,oracle LOB介绍
- STM32——CAN通信实验
- iOS 图片编辑——涂鸦——在图片上添加文字
- 5G端到端时延要求1ms是个什么概念?
- 万级并发服务器内核调优总结
- 快速构建属于自己的博客网站