爬取并分析一下B站的最热视频排行榜,看看大家都喜欢看什么视频
前言
现在大家的生活中,已经越来越离不开B站了,2020年的第一季度,B站月活跃用户达到了1.72亿,日活跃用户也已经突破了5000万个用户。源源不断的流量让B站的up主们也是粉丝数目不断暴涨,百万粉丝的up主比比皆是。
今天,小编就带领大家来爬取并分析一下B站的最热视频排行榜,看看大家究竟都喜欢看什么样子的视频~~
01.榜单信息抓取
对于榜单的爬取,我们爬取了榜单的前一百名视频的播放量,弹幕数量,以及视频的点赞、投币、收藏和up主的粉丝数目等信息。
对于排行榜的播放量、弹幕数量和视频链接的爬虫程序,如下图所示:
由于网页是静态网页,所以我们可以直接采用requests请求的方式,来获取网页源代码,然后使用beautifulsoup来进行网页的解析,并抓取我们需要的信息。对于每个网页的点赞、投币、收藏和up主的粉丝数量。
可以采用我们之前介绍的web scraper来进行抓取(牛逼的chrome插件,不用一行代码,轻松爬取各大网站公开信息!(附视频))。最后将两部分的内容进行合并,得到最终的抓取信息。
对于数据中存在的字符串类型的数值,例如观看数量为“122万”,已经经过数据清洗转化为int类型的数值。
02.数据分析
接下来,我们来看一下,最热视频排行榜前十位中,up主们的粉丝数量的分布情况,程序如下图所示:
首先,我们对数据按照粉丝数量的数值进行降序排序,然后将前十名的粉丝数量进行按“万”为单位进行计数,最后利用pyecharts中的Bar类来及进行可视化的展示。结果如下。
可以看到,粉丝数量排名最高的up主是“罗翔说刑法”,粉丝数量超过了1000万,妥妥的B站超级up主,也说明了在B站上小伙伴们不仅是为了娱乐,还可以在B站上进行学习。大家看看前十的排行中,有没有大家关注的up主呢?
03.可视化展示
接下来,我们对于排行榜中弹幕的数目进行一个分布的可视化展示:
程序中 ,我们首先将弹幕的数量进行一个分段的划分,分别为0-5000,5000-10000一直到25000-30000,然后创建一个Pie类对象,进行数据的可视化展示。
可以看到,视频的弹幕数量中,有62%的是在0-5000的范围内,视频的个数随着弹幕数量的增加而呈现快速减少的趋势,弹幕数量在25000到30000之间的视频只有一个。这也符合大家正常的观看趋势。
那对于视频的点赞数目的视频分布又是怎样的呢?
上图中横坐标对应的是不同的点赞数量分布区间,利用0到2万指的是,点赞数在0到2万次,而纵坐标对应的就是视频的数量;
从点赞数和视频的分布数量来看,呈现了不规则的趋势,点赞在2万到4万和12万赞以上的视频数目是最多的;
而点赞在0到2万的视频数目是最少的,看来大家对于视频是不会吝啬自己的“赞”;
另一方面,相比于发弹幕,点赞的操作更加的便捷,也也许就是大家更愿意点赞的原因吧。
04.词云分析
最后,小编抓取了榜单排行第一位的视频《众所周知,猫是一种尊老爱幼的动物》的弹幕,并进行了去重,来看一下弹幕中大家提及的关键词都有哪些吧。
.markdown-body pre, .markdown-body pre>code.hljs { color: rgba(51, 51, 51, 1); background: rgba(248, 248, 248, 1) }
.hljs-comment, .hljs-quote { color: rgba(153, 153, 136, 1); font-style: italic }
.hljs-keyword, .hljs-selector-tag, .hljs-subst { color: rgba(51, 51, 51, 1); font-weight: 700 }
.hljs-literal, .hljs-number, .hljs-tag .hljs-attr, .hljs-template-variable, .hljs-variable { color: rgba(0, 128, 128, 1) }
.hljs-doctag, .hljs-string { color: rgba(221, 17, 68, 1) }
.hljs-section, .hljs-selector-id, .hljs-title { color: rgba(153, 0, 0, 1); font-weight: 700 }
.hljs-subst { font-weight: 400 }
.hljs-class .hljs-title, .hljs-type { color: rgba(68, 85, 136, 1); font-weight: 700 }
.hljs-attribute, .hljs-name, .hljs-tag { color: rgba(0, 0, 128, 1); font-weight: 400 }
.hljs-link, .hljs-regexp { color: rgba(0, 153, 38, 1) }
.hljs-bullet, .hljs-symbol { color: rgba(153, 0, 115, 1) }
.hljs-built_in, .hljs-builtin-name { color: rgba(0, 134, 179, 1) }
.hljs-meta { color: rgba(153, 153, 153, 1); font-weight: 700 }
.hljs-deletion { background: rgba(255, 221, 221, 1) }
.hljs-addition { background: rgba(221, 255, 221, 1) }
.hljs-emphasis { font-style: italic }
.hljs-strong { font-weight: 700 }
想要获取更多Python学习资料可以加QQ:2955637827私聊或加Q群630390733大家一起来学习讨论吧!
爬取并分析一下B站的最热视频排行榜,看看大家都喜欢看什么视频的更多相关文章
- 用Python介绍了企业资产情况的数据爬取、分析与展示。
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:张耀杰 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...
- 【php爬虫】百万级别知乎用户数据爬取与分析
代码托管地址:https://github.com/hoohack/zhihuSpider 这次抓取了110万的用户数据,数据分析结果如下: 开发前的准备 安装Linux系统(Ubuntu14.04) ...
- 针对源代码和检查元素不一致的网页爬虫——利用Selenium、PhantomJS、bs4爬取12306的列车途径站信息
整个程序的核心难点在于上次豆瓣爬虫针对的是静态网页,源代码和检查元素内容相同:而在12306的查找搜索过程中,其网页发生变化(出现了查找到的数据),这个过程是动态的,使得我们在审查元素中能一一对应看到 ...
- 爬虫第六篇:scrapy框架爬取某书网整站爬虫爬取
新建项目 # 新建项目$ scrapy startproject jianshu# 进入到文件夹 $ cd jainshu# 新建spider文件 $ scrapy genspider -t craw ...
- 一个简单的爬取b站up下所有视频的所有评论信息的爬虫
心血来潮搞了一个简单的爬虫,主要是想知道某个人的b站账号,但是你知道,b站在搜索一个用户时,如果这个用户没有投过稿,是搜不到的,,,这时就只能想方法搞到对方的mid,,就是 space.bilibil ...
- python 爬取腾讯微博并生成词云
本文以延参法师的腾讯微博为例进行爬取并分析 ,话不多说 直接附上源代码.其中有比较详细的注释. 需要用到的包有 BeautifulSoup WordCloud jieba # coding:utf-8 ...
- Python爬虫入门教程 15-100 石家庄政民互动数据爬取
石家庄政民互动数据爬取-写在前面 今天,咱抓取一个网站,这个网站呢,涉及的内容就是 网友留言和回复,特别简单,但是网站是gov的.网址为 http://www.sjz.gov.cn/col/14900 ...
- Python爬虫入门教程 14-100 All IT eBooks多线程爬取
All IT eBooks多线程爬取-写在前面 对一个爬虫爱好者来说,或多或少都有这么一点点的收集癖 ~ 发现好的图片,发现好的书籍,发现各种能存放在电脑上的东西,都喜欢把它批量的爬取下来. 然后放着 ...
- python3网络爬虫(2.1):爬取堆糖美女
额,明明记得昨晚存了草稿箱,一觉醒来没了,那就简写点(其实是具体怎么解释我也不太懂/xk,纯属个人理解,有错误还望指正) 环境: 版本:python3 IDE:pycharm2017.3.3 浏览器: ...
随机推荐
- jQuery 第五章 实例方法 详解动画之animate()方法
.animate() .stop() .finish() ------------------------------------------------------------------- ...
- Visual Studio使用Git忽略不想上传到远程仓库的文件
前言: 作为一个.NET开发者而已,有着宇宙最强IDE:Visual Studio加持,让我们的开发效率得到了更好的提升.我们不需要担心环境变量的配置和其他代码管理工具,因为VS有丰富的拓展工具.废话 ...
- Java基础教程——Math类
Math Java这种级别的编程语言怎么可能没有数学相关的操作呢? java.lang.Math类提供了基本数学运算的方法. 该类是final的,说明不能被继承. 该类的构造方法是私有的(privat ...
- presto 访问kudu 多schemas配置
presto需要访问kudu数据源,但是impala可以直接支持多数据库存储,但是presto不能原生支持,按照presto的官网设置了然而并不起作用. 官方文档: 到官方github提问了,然后并没 ...
- 更改ubuntu的分辨率
乘号使用xyz的x打出来
- moviepy音视频开发:使用credits1给视频加片头片尾字幕
☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip.UpdatedVideoClip.ImageClip. ...
- 从Linux源码看Socket(TCP)的accept
从Linux源码看Socket(TCP)的accept 前言 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 今天笔者就从Linux源码的角度看下Serve ...
- python冒泡算法联系代码
root@(none):~/python# python maopao.py[6, 11, 13, 22, 99]root@(none):~/python# cat maopao.py #!/usr/ ...
- 题解-CTS2019 珍珠
题面 CTS2019 珍珠 有 \(n\) 个在 \([1,d]\) 内的整数,求使可以拿出 \(2m\) 个整数凑成 \(m\) 个相等的整数对的方案数. 数据范围:\(0\le m\le 10^9 ...
- 题解 CF1426E - Rock, Paper, Scissors
一眼题. 第一问很简单吧,就是每个 \(\tt Alice\) 能赢的都尽量让他赢. 第二问很简单吧,就是让 \(\tt Alice\) 输的或平局的尽量多,于是跑个网络最大流.\(1 - 3\) 的 ...