python b站 礼物_用Python爬取并分析了B站最热排行榜,我发现了这些秘密

本文通过Python爬虫获取B站最热视频排行榜前一百的数据,包括播放量、弹幕、点赞、投币、收藏和UP主粉丝数。分析显示,最高粉丝数的UP主超过1000万,大部分视频弹幕数量集中在0-5000,点赞数在2万到4万的视频最受欢迎。此外,还对热门视频的弹幕内容进行了词云分析。
摘要由CSDN通过智能技术生成

43ac442a072d

现在大家的生活中,已经越来越离不开B站了,2020年的第一季度,B站月活跃用户达到了1.72亿,日活跃用户也已经突破了5000万个用户。源源不断的流量让B站的up主们也是粉丝数目不断暴涨,百万粉丝的up主比比皆是。

今天,小编就带领大家来爬取并分析一下B站的最热视频排行榜,看看大家究竟都喜欢看什么样子的视频~~

01.榜单信息抓取

对于榜单的爬取,我们爬取了榜单的前一百名视频的播放量,弹幕数量,以及视频的点赞、投币、收藏和up主的粉丝数目等信息。

43ac442a072d

对于排行榜的播放量、弹幕数量和视频链接的爬虫程序,如下图所示:

43ac442a072d

由于网页是静态网页,所以我们可以直接采用requests请求的方式,来获取网页源代码,然后使用beautifulsoup来进行网页的解析,并抓取我们需要的信息。对于每个网页的点赞、投币、收藏和up主的粉丝数量。

可以采用我们之前介绍的web scraper来进行抓取。最后将两部分的内容进行合并,得到最终的抓取信息。

43ac442a072d

对于数据中存在的字符串类型的数值,例如观看数量为“122万”,已经经过数据清洗转化为int类型的数值。

02.数据分析

接下来,我们来看一下,最热视频排行榜前十位中,up主们的粉丝数量的分布情况,程序如下图所示:

43ac442a072d

首先,我们对数据按照粉丝数量的数值进行降序排序,然后将前十名的粉丝数量进行按“万”为单位进行计数,最后利用pyecharts中的Bar类来及进行可视化的展示。结果如下。

43ac442a072d

可以看到,粉丝数量排名最高的up主是“罗翔说刑法”,粉丝数量超过了1000万,妥妥的B站超级up主,也说明了在B站上小伙伴们不仅是为了娱乐,还可以在B站上进行学习。大家看看前十的排行中,有没有大家关注的up主呢?

03.可视化展示

接下来,我们对于排行榜中弹幕的数目进行一个分布的可视化展示:

43ac442a072d

程序中 ,我们首先将弹幕的数量进行一个分段的划分,分别为0-5000,5000-10000一直到25000-30000,然后创建一个Pie类对象,进行数据的可视化展示。

43ac442a072d

可以看到,视频的弹幕数量中,有62%的是在0-5000的范围内,视频的个数随着弹幕数量的增加而呈现快速减少的趋势,弹幕数量在25000到30000之间的视频只有一个。这也符合大家正常的观看趋势。

那对于视频的点赞数目的视频分布又是怎样的呢?

43ac442a072d

上图中横坐标对应的是不同的点赞数量分布区间,利用0到2万指的是,点赞数在0到2万次,而纵坐标对应的就是视频的数量;

从点赞数和视频的分布数量来看,呈现了不规则的趋势,点赞在2万到4万和12万赞以上的视频数目是最多的;

而点赞在0到2万的视频数目是最少的,看来大家对于视频是不会吝啬自己的“赞”;

另一方面,相比于发弹幕,点赞的操作更加的便捷,也也许就是大家更愿意点赞的原因吧。

04.词云分析

最后,小编抓取了榜单排行第一位的视频《众所周知,猫是一种尊老爱幼的动物》的弹幕,并进行了去重,来看一下弹幕中大家提及的关键词都有哪些吧。

43ac442a072d

【资源说明】 基于python selenium实现B站直播弹幕和礼物信息爬虫源码+项目操作说明.zip 实现原理: 1.核心:数据去重 直播间网页页面可容纳的弹幕和礼物数据是有限的,且这些数据不断地在更新增加,超过一定量后,将会发生滚动覆盖。 程序每隔一段时间读取一次页面数据,若页面数据没有超出容量,则两次获取的数据在后段会有部分重复。若页面数据已经开始滚动,则两次获取的数据在位置上会发生错位。因此每获取一次数据就需要进行一次比较去重。 **去重原理如下图:(在twice数据列表中寻找与once数据列表末端元素相同的元素,扩展once数据列表。)** **一次去重后,once数据列表可以保留作为数据总列表,而twice数据列表可被新的一批数据覆盖,这样就可以实现重复去重** ![image](https://img.wenhairu.com/images/2021/02/25/EGByH.md.png) 2.主要方法 (1)网页数据定位方法:selenium浏览器对象访问指定直播间url,返回页面源码,再使用xpath定位对应html标签。 (2)加速去重方法:使用线程池,对弹幕和礼物列表同时去重。 (3)运行时长控制:分为两种模式,运行指定时长和运行至直播间关闭。 (4)抓取监控:每进行一次抓取并去重后,使用print输出一次数据列表,以实现对抓取数据的实时监控。 (5)数据抓取频率:分为两种模式,快模式和慢模式,具体可根据弹幕流量和直播间人数选择。快模式每0.5秒左右读一次页面数据,两类数据最大缓存量都为400条;慢模式每1秒左右读一次页面数据,两类数据最大缓存量都为200条。 (6)数据存储:当数据缓存量大于最大缓存量写入csv一次,并清空数据缓存,避免大量数据堆积。 三、使用注意事项 1.python环境下直接运行 (1)模块依赖安装: ```shell pip install selenium pip install lxml ``` (2)下载浏览器驱动(驱动与浏览器版本一定要对应)(浏览器推荐使用Firefox和Chrome):参考 [爬虫利器selenium和浏览器驱动安装教程](https://blog.csdn.net/qq_44032277/article/details/105793873) (3)修改浏览器驱动路径及配置: ```python # 如果使用的浏览器是chrome,第97行代码改为: bro = webdriver.Chrome('你的驱动路径', chrome_options = chrome_options) ``` ```python # 如果使用的浏览器是firefox,删除4行,改为: from selenium.webdriver.firefox.options import Options # 删除94-97行,改为: ff_options = Options() ff_options.add_argument('-headless') bro = webdriver.Firefox('你的驱动路径', firefox_options = ff_options) ``` (4)运行提示:程序在发送请求获取数据时可能因网络不稳定而报错,此时等待其快速重连即可,一般不会影响程序运行。 (5)建议:建议在控制台运行该py源码,因为其清理输出依赖于cmd 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值