分析B站100万+视频,发现居然有这么多干货资源。

image.png


最近一年来B站真的是火热火热的。python


最近的跨年晚会,获得了人民日报的表扬。
mysql


image.png


去年4月份被央视点名表扬。
sql


image.png


弄的小F也注册了一个B站帐号,去学习~
数据库


那么问题来了,面对B站8千万的视频,该如何找到那些优质的资源呢?
浏览器


小F爬取了B站科技分区下三个板块2019年的全部视频,约110w。app


image.png


其中演讲·公开课板块视频最多,占了一半的数量。ide


image.pngimage.png


数据是放在Mysql数据库,因此放一下数据处理的代码。工具


import pandas as pd
import pymysql

# 设置列名与数据对齐
pd.set_option('display.unicode.ambiguous_as_wide'True)
pd.set_option('display.unicode.east_asian_width'True)
# 显示20列
pd.set_option('display.max_columns'20)
# 显示10行
pd.set_option('display.max_rows'10)
# 设置显示宽度为2000,这样就不会在IDE中换行了
pd.set_option('display.width'2000)

# 读取数据
conn = pymysql.connect(host='localhost', user='root', password='20200118', port=3306, db='bilibili', charset='utf8mb4')
cursor = conn.cursor()
sql = "select * from messages"
db = pd.read_sql(sql, conn)


选取上传时间为2019年的视频,看一下总体的数据状况学习


# 选取2019年的视频数据
df = db[db['day'].str.contains("2019")]
# 选取观看数、弹幕数、点赞数、投币数、收藏数、分享数、回复数的列数据
df = df[['view''danmaku''love''coin''favorite''share''reply']]

# 计算每列的总和
df.loc['Row_sum'] = df.apply(lambda x: x.sum())
# 打印结果
print(df)


结果以下。
网站


image.png


能够看到2019年上传了1086739个视频。


共产生了41亿次的观看,2千万的弹幕,1.3亿的点赞,近7千万的投币,1.1亿的收藏,1.5千万的分享,以及1.8千万的评论。


厉害了,这个硬核的「B站」。


下面分别看一下各个数据的Top10。


 
 

# 对播放量进行排序,其它就是修改view为danmaku,love,coin,favorite,share,reply
df = df.sort_values('view', ascending=False, na_position='last')
# 输出排行前10位
df = df[['aid''view''name''title']].head(10)
print(df)


话说逛过B站的你,看过下面中的哪几个视频呢?


image.pngimage.pngimage.pngimage.pngimage.pngimage.pngimage.png


才入坑的小F,也就看过那么几个吧...


「何同窗」算是知道的,那个讲解5G的视频。


还有「见齐」,他开源的可视化工具(动态条形图)真的香。


没玩过B站的,能够输入图片中的「mid」值(av号)便可访问视频。

https://www.bilibili.com/video/av52012946(复制到浏览器打开)


目前B站的注册人数已经超过4亿人,月活跃用户也超过1亿人。


下面就来看一下这110w的视频是由多少个UP主上传的,那些UP主上传视频最多。


 
 

# 对UP主进行分类汇总,计算上传视频数量
df = df.groupby(['name'])[['mid']].count().reset_index()
# 输出全部结果
# df = df.sort_values('mid', ascending=False, na_position='last')

# 输出排行前10位
df = df.sort_values('mid', ascending=False, na_position='last').head(10)
print(df)


结果以下。


image.png


能够看到共有11万+的UP主参与了这个大工程的建设。


如下10位做者能够说是B站科技板块最勤奋的UP主了。


image.png


「knnstack」这位UP主贡献了近2万的视频,貌似都是搬运的。


image.png


那么2019年谁是B站最强UP主呢?


下面以2019年视频总播放量做为一个参考,看一下Top10


image.png


其中「我是EyeOpener」以5千万的播放量位居第一,其余各项数据也位居前列。



就主页来看,应该是一位偏向科普类型的UP主。


经过这些数据应该就能将B站科技板块热门的UP主搜罗的差很少了。


对于那些冷门但质量好的UP主,或许就只能慢慢发现了。


接下来查询一下关于Python的视频有多少呢?


 
 

# 查询标题含有Python的视频
df = df[df['title'].str.contains("python|Python")]
# 输出结果
print(df)


结果以下。


image.png


1万多条,也是很多,不过其中的版权问题也较大。


以前看过网易数读的一篇文章,里面提到了北京大学的课程最受欢迎。


image.png


这里小F就来验证一下。


 
 

# 查询标题含有北京大学的视频
df = df[df['title'].str.contains("北京大学")]
# 查询标题含有清华大学的视频
# df = df[df['title'].str.contains("清华大学")]
# 选取av号,类型,播放量数据的列
df = df[['aid''tname''view']]
# 输出结果
print(df)


结果以下。


image.pngimage.png


其中2019年清华大学相关课程的播放量已经达到1千万+,而大学则是3千万+。


不愧是一个超硬核的「学习网站」。


小F最近想了解视频剪辑,一查就有优质资源(以播放量排序)。


image.png


最后来看一下B站视频上传时间及视频时长分布。


image.png


整体上整年成上升趋势。


8月份最高,看来暑假的时候你们学习的欲望很强啊!


image.png


对于科普的视频,时长通常都短点,这样可以快速了解。


对于须要深刻学习的,时长应该就长了,因此能够看到大于30分钟的视频数量最多。


好了不说了,我要去知乎写帖子去了...


image.png


用数据来告诉大伙,有哪些值得推荐的学习UP主。


万水千山老是情,点个「在看」行不行。



···  END  ···


image.png

相关文章
相关标签/搜索