b站用户画像2020_B站用户行为分析非官方报告

上次,我们做了一个B站/知乎大V排名监控工具(用python爬虫追踪知乎/B站大V排行)。

65ced635ff0afde07dfbb50dae433b7f.png

有读者问,这个初始数据是怎么获取的?我说是来自于一个分析项目的副产品。

这个项目就是今天给大家展示的内容:

关于 bilibili 上用户行为的统计分析

因为完成统计已经有一段时间了,所以数据并非最新的实时数据

本项目由我们的实训生兼助教 清风小筑 完成。

获取代码、数据、图片及说明文档见文末

    数据来源    

分析数据基于 bilibili 网站上的公开信息,主要采集了以下数据维度:

  1. 2016年~2019年5月,每月各分类视频发布数

  2. 2019年1~5月,播放量过1w视频的标签、播放数、发布时间

  3. 2019年1~5月,播放量过10w视频的弹幕数、评论数、收藏数

  4. 2019年1~5月,播放量过50w的作者粉丝数、播放总数、视频数

之所以其中选择了 1w、10w、50w 等门槛,是因为B站的视频实在太多了,且有些数据不在列表请求中,需逐个获取。出于研究学习的目标,我们没必要完整抓取所有信息,只针对相对受欢迎的视频进行分析。

    相关数据量    

06d7719f838f9fd82c65faffb020f40a.png

c2405e6c73d173f054f0ee3cf3c0c30a.png

2019年不到半年的视频发布量,已经占到了B站全站视频量的1/4 以上,可见其最近正进入高速增长时期。

以下分析,如无特殊注明均是针对2019年1~5月部分数据做出的统计。

    历史趋势    

c1246afdfa6ce6f126dba6edc1d773de.png

视频发布量有一个比较明显的加速上涨趋势。另外,可以看出每年7、8月份都有一波小峰值,因为放假了……

    周期规律    

01e095a3a8c920376a1f8de8eb91bb57.png

每日的视频发布量有比较明显的波动,如果你去看大图(已上传),会发现每一次波动都是一个星期。

如果我们按每周一~日来合并统计,就会得到:

7263219ed131cbc66016829fd565c894.png

周末的发布量明显高于工作日,而周五是发布的高峰。

发布量反映的是作者的行为,而弹幕量则能反映出观众的行为。

对2019年1~5月播放量前1w视频的弹幕发布时间进行了分析:

9520e4742d6212e41e85a9fd2024aca6.png

弹幕发布量同样呈现周期性,且比视频发布略滞后一天,峰值在周六周日。说明大家还是周末刷B站比较多。

我们将两个曲线归一化对比就比较明显了:

b08a3d14eb5bdf28cba551520fd55a10.png

如果按每天的24小时进行合并统计,也会发现很明显的规律:

aecda66960e002f57a6a69960306bfae.png

中午是小高峰,晚上是大高峰;

弹幕依旧滞后于视频

    谁才是大佬?    

对于播放量过50w视频的作者,做一个排序(非最新数据):

粉丝数前20

68a135a47892de15fd8e31c4346037cc.png

视频播放总量前20

e2958436a899f5bb345a3ba21af4d872.png

视频平均播放量前20

fb61b8f222630405eae992cf98120169.png

将视频总数/播放总量/粉丝数3个维度结合,综合成一张图表:

f0ace9b8d58b8ac589c4e688d10bc228.png

可点击查看大图,或从项目中获取

圈越大代表粉丝越多,越靠近左上说明效率越高(平均播放量高),越靠近右边说明UP主越勤劳。

因为B站上的“贫富分化”真的很明显,数据量跨度极大,所以这张图用了对数坐标。

特别看了下图上几个比较突出的点的详细数据:

UP主 - 发布视频数 - 播放总数 - 粉丝数

  1. 暴走漫画 - 65 - 9.73亿 466.61万

  2. 哔哩哔哩番剧 - 8382 - 112.89亿 - 78.42万

  3. TAKERA - 18665 - 2.49亿 - 32.14万

  4. 柚子木字幕组 - 10864 - 9.97亿 - 306.05万

    什么内容最受欢迎?    

对于播放量过1w视频的标签,做了一些统计:

相关视频量前20

1b0c5f8d6288b5149a3eba9e93e62cee.png

播放总量前20

47f6d617bafe4f456e2d8a6b2fbd6773.png

平均播放量前20(只统计视频量>100的)

d39f7bc25827d831489123165418c970.png

平均收藏前20(基于播放量过10w视频,标签相关视频量>100的)

0b6d93ba1bfec260fd2904888e086323.png

这是一张针标签平均弹幕量和标签平均播放量的散点图:

1d9c165c5d8b5f8e7dc03524f4f1b836.png

总体来说,对于热门标签,播放量和弹幕量都会非常高;但一般标签,播放量和弹幕量的相关性并不是特别大。

把标签按视频总数、播放总量、全部评论量、全部弹幕量取Top100,绘制出词云:

5b30943a9d5a7c86a1a8cb53152ff052.png

如果把标准改成 平均播放量、平均评论量、平均弹幕量,则是:

31432a8bfd9ba4b2271ff17defa382f5.png

看来有两位同志今年上半年很火啊!

全站标题高频词云:

35ddfc3c06b7860bc38928be389b61a0.png

高频弹幕词云:

0edd45a840532cc14baf0805871788ca.png

关于项目的一些说明

  1. 使用了哔哩哔哩网页版的视频、作者信息、弹幕、热评 API 进行数据抓取

  2. 使用 MongoDB 存储数据。为了方便学习者使用,另转存了一份 JSON 格式数据可直接导入

  3. 开发环境:python3.7 / Windows / jupyter notebook

  4. 运行依赖包:

  • requests
  • matplotlib
  • numpy
  • pymongo
  • pickle
  • jieba
  • wordcloud

抓取部分并无特别难度,在 github 项目页面,我们附上了具体的文档说明和代码注释。

如果你上个月参与了我们的爬虫学习小组,现在应该也可以参照代码顺利完成抓取部分的工作。

而关于数据可视化的内容,我们也很快会开展相关小组。请留意我们公众号和群里的通知。

获取项目代码、数据、图片及说明文档,请在公众号(Crossin的编程教室)里回复关键字:

b站


其他内容回复左侧关键词获取:

python :零基础入门课程目录

新手 :初学者指南及常见问题

资源 :超过500M学习资料网盘地址

项目 :十多个进阶项目代码实例

如需了解视频课程及答疑群等更多服务,

请号内回复 码上行动

推荐阅读

经验:选专业 | Python转行 | 我用Python | 新手建议

干货:如何debug |  一图学Python  | 知乎资源 | 单词表

案例:漫威API | 爬抖音 | 查天气 | 监控大V | 红包提醒


欢迎加入

Crossin的编程教室

crossincode.com

9ecf879346218d4e0cec278e8b46d557.png

请把我们分享给身边爱学习的小伙伴 :)  

点击文末“”,查看更多学习资源


版权声明:本文为weixin_30979229原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。