B站用户行为分析非官方报告

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


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


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


关于 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站的视频实在太多了,且有些数据不在列表请求中,需逐个获取。出于研究学习的目标,我们没必要完整抓取所有信息,只针对相对受欢迎的视频进行分析。


    相关数据量    


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


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


    历史趋势    


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


    周期规律    


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


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

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


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

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

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


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

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

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

弹幕依旧滞后于视频


    谁才是大佬?    


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


粉丝数前20

视频播放总量前20


视频平均播放量前20


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


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

圈越大代表粉丝越多,越靠近左上说明效率越高(平均播放量高),越靠近右边说明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

播放总量前20

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

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

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

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


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



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


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


全站标题高频词云:


高频弹幕词云:


关于项目的一些说明

  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


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

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

请使用浏览器的分享功能分享到微信等