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


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


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


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


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


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


弄的小F也注册了一个B站账号,去学习~


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


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


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


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


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


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


数据是放在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)

结果如下。


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

可以看到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_positinotallow='last')
# 输出排行前10位
df = df[['aid''view''name''title']].head(10)
print(df)

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


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


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


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

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


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

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


才入坑的小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_positinotallow='last')

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


结果如下。


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

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


以下10位作者可以说是B站科技板块最勤奋的UP主了。


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


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


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


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


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


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


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



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


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


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


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


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


结果如下。


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


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


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


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


这里小F就来验证一下。


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


结果如下。


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


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


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


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


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


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


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


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


总体上全年成上升趋势。


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


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


对于科普的视频,时长一般都短点,这样能够快速了解。


对于需要深入学习的,时长应该就长了,所以可以看到大于30分钟的视频数量最多。


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


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


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


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



···  END  ···


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