查看原文
其他

B站弹幕告诉你谁家小女友最爱运动?

PYuraL Yura不说数据说 2019-10-30

大概从上周开始,杭州正式进入梅雨季节,白天偶尔不下雨,但是上下班的时间必是倾盆大雨!这让我这个精致的居居女孩不得不换上t恤短裤大拖鞋的汉子装备。

同时,每日的晨跑运动也因为天气原因无限延迟。但是不运动的话总感觉身体有点儿不舒服,于是我就重拾了去年夏天的锻炼方式——美丽芭蕾天鹅臂


言简意赅,是能瘦手臂练锁骨削肩膀改正驼背的运动!对我而言,最大的优点就是不受时间空间限制不需要任何器械,只需要一颗恒心太难了)!

练习视频来自B站(https://www.bilibili.com),直接搜索“天鹅臂”,选第一个就是啦。虽然只有短短15分钟,但是真正动手臂练的时候,时间仿佛被拉长了十倍!!!为了转移注意力,我就打开了弹幕,看看有没有小仙女一起吐槽or加油鼓劲的……

嗯???为什么这么多女友/老婆/娇妻/太太突然出现??这是逼我这个陈信宏的老婆留言??

行8,那就让我看看谁家粉丝打卡最多!


国际惯例,先右键检查一下,ctrl+F,随便找一条弹幕搜索一下🔍说实话,没找到……后来我发现弹幕信息的存储不是按照弹幕在视频里出现的位置排序的。

也就是说,我在前面看到的诸如“易烊千玺女朋友第一天打卡”,虽然出现在视频第3秒,但是可能是人家3年前发的弹幕,所以按时间倒退,可能要加载很久才会出现这一条内容。

仔细观察页面,网页右边部分有一个弹幕列表👇

每次显示3000条,登陆B站账号之后能“查看历史弹幕”,显示内容是按照发弹幕的绝对时间倒序排列的。所以捡里面其中一条弹幕在network里面搜索就…嗯??也没有??咋肥事儿??fine,那我就自己找。根据以前的经验,一般是在comment/bullet/list等关键字眼的url中,我就一个个排查呗。当我看到这个网址的时候:

虽然Preview里面没有内容,但我看这个url简洁明了,而且带了个id就决定是你了!

新大陆就在我复制这个网址到地址栏的时候发现了!

叮叮~对比了一下文字部分,确实是网页右边弹幕列表显示的3000条内容!我还仔细研究了一下蓝色的数字部分,只能破解部分:第一个数字是弹幕发送的视频位置(比如你在视频第3分钟发送了一个弹幕,这个就显示3*60s=180);第5个数字时间戳(后续可转化为“年月日时分秒”);第7个数字用户id。其他暂时没研究出来是啥,知道的朋友可以私信我分享一下哈。ps,我怀疑里面应该有个参数0/1表示性别。


说回来,这个页面只有3000条信息不够分析呀。于是我在“查找历史弹幕内容”选择了前面几天的日期,发现弹幕内容发生了变化。这个时候在network里面搜索相关内容就能查找到了:

只要不断更改日期,一直滚动到视频发布的时间,就可以爬下所有弹幕信息啦。

ps,如果把日期改成当天日期,就能显示首页的内容。换言之,前面那些漫漫寻找的坎坷路其实没必要走……

最后爬取的时候还遇到一个头疼的问题,我的chrome网页一直显示:


百度了好久也没解决,所以无法写入cookie信息。


于是我换了个Firefox,成功找到cookie。不同于以往的字符形式,这次是以字典模式载入的👇

最后得到364543条弹幕:主要爬取字段为用户id(不是昵称),弹幕评论时间,弹幕评论的视频位置(s)和弹幕内容

爬虫代码已上传github,大家可以参考一下:https://github.com/PengYura/Bilibli-




这次除了词云是用python处理,在计算用户发弹幕总次数和发弹幕时间间隔的时候也用到了python,groupby大法好~


这是一个要不断挥动你的天鹅臂(粗臂膀)的视频,我们要紧跟着里面老师的节奏和动作变化,每挥动一百来下老师就会放下手臂让我们转转头拉拉筋休息一下,大概也就10秒吧。但是仔细观察弹幕的我几乎每分每秒都能看到有弹幕消息,那些是拥有“用脚打字”神技的姐妹吗??看看大家发弹幕都在视频的什么位置吧👇

29%的姐妹喜欢在视频前1分钟发个弹幕,“先为自己打个气”!47%的姐妹则是在视频的结尾打卡庆祝自己离天鹅臂更近了一步,具体体现在发送“XXX女友第X天打卡!”。我们还发现这期间有7个小突起,也就是每次老师让我们休息的时间,在这个期间比较多的是“好累呀”“刚三分钟啊我的妈““快坚持不住了”之类的吐槽话语。

视频发布的日期是2016年1月10日,我们可以勉强从弹幕数量每日变化的情况来发现大家锻炼的秘密。

从这个每日弹幕变化图表可看出来弹幕数量存在明显的季节性,俗话说“四月不减肥,五六七八月徒伤悲”,每逢春末夏天,弹幕数量都会猛增。虽然视频刚发布第一年的时候并没有什么人气,但是一到了当年7月份的时候,弹幕数量每日平均数量直逼500,与后面几年的顶峰数量相当。

细心的网友可能发现在图表后面有一个断崖,我细看了具体是2019年5月30日到6月5日。我想起来了, 因为一些众所周知的事情,所以B站(全网)弹幕功能关闭:

时间除了从“”的角度分析,从“”也能发现有趣的现象:

可以看到,睡前是大家运动的高峰期,57%的弹幕出现在晚上8点到12点之间。我个人是习惯在晚上9点开始运动:先做三组平板支撑,然后再练习天鹅臂,和大众的习惯不谋而合~

鲁迅没有说过“21天能养成一个习惯”,但是这句话大家应该是耳熟能详的。那么通过用户的发弹幕总数来看看大家都坚持了几天?

只有不到2%的朋友坚持打卡超过21天。有59%的朋友只打卡了1天,这里面肯定还有部分姐妹一次都没有完整坚持下来的。我前面说这是个“不受时间空间限制,不需要任何器械,只需要一颗恒心”的运动,没骗你。

但是我以已经连续打卡10天的过来人身份告诉你,一开始觉得累很正常,大不了挥动手臂的幅度小点儿。其实大概从第3天开始,我就能跟上老师的节奏和幅度啦。所以姐妹们,坚持鸭

前面说到打卡超过21天的只有2%的人,但是这2%的人却贡献了25%的弹幕数量。而且从大家重复发弹幕的时间间隔来看,72%的时间间隔(不是用户数量)是在2天之内,也就是说坚持下来的姐妹大部分都能够做到1天1次(间隔48小时内)或者1天多次(间隔24小时内)

回到爬弹幕的初衷,我想知道哪家明星的粉丝留言数量最多,通过词云来显示再清楚不过啦!

易烊千玺稳居TOP1,其次是朱一龙、白敬亭、刘昊然……由于很多明星都有粉丝的专属爱称,比如“四字弟弟(易烊千玺)”“居老师(朱一龙)”,明星数量太大(  主要是因为我不太了解),不可以一一匹配替换,因此我就简单粗暴统计了全名。具体TOP30排名如下:

  1. 易烊千玺

  2. 朱一龙

  3. 白敬亭

  4. 刘昊然

  5. 蔡徐坤

  6. 王俊凯

  7. 吴亦凡

  8. 华晨宇

  9. 张艺兴

  10. 王嘉尔

  11. 吴世勋

  12. 彭于晏

  13. 肖战

  14. 权志龙

  15. 胡歌

  16. 王源

  17. 朱正廷

  18. 林彦俊

  19. 李易峰

  20. 陈伟霆

  21. 杨洋

  22. 金泰亨

  23. 鹿晗

  24. 吴磊

  25. 黄景瑜

  26. 边伯贤

  27. 陈立农

  28. 陈信宏

  29. 田柾国

  30. 王子异

至于为什么是TOP30,当然是因为我要把我家排名第28的陈信宏安排进去啦!

画词云的时候,如何去掉杂七杂八的高频词关键词(比如:老婆/太太/女友/娇妻)和加入系统无法智能识别的人名(比如:“易烊千玺”一开始被拆分为“易”“千玺”)。我只想说,巧用停止词自定义词典


希望我早日穿上小吊带吧。

生活不易,必须多才多艺。

数据很多,Yura分析跟你说。


不定期更新数据分析小文章

请大家多多关注多多点赞多多转发:)

关注我

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存