IT专题推荐互联网科技@IT·互联网

B站2016年10月至2017年1月新注册用户浅析

2017-02-19  本文已影响162人  呆毛星人

作为一名14年注册B站的LV.4中坚用户,我对新小伙伴是啥样的很有兴趣,于是用python爬取了近期注册用户的公开信息,准确时间点为2016-10-01 01:33:02至2017-01-12 01:29:31,有效数据182402。

数据获取通过python,将每位用户的 uid,昵称,性别,注册时间,生日,投稿,粉丝等信息存入AWS上的MySQL数据库中。数据清洗、处理、提取、分析、作图等大部分通过R完成。中途遇到不少问题,这个文章最后再说。

首先是性别分布,由于98%的用户都没有设置性别(账号刚生成时性别的默认值就是“保密”,而bilibili并非社交产品,一般除了up主基本不会特意设置个人信息,98%这种巨大的比例应该在正常范围内。)那么在剩下的区区2%中男女比例如下:

由于人数实在太少,所以上图并不能说明任何问题= =(请不要幻想妹子变多)

接下来是每位用户的粉丝数量

绝大部分用户都不是up主,没有投稿当然就没有粉丝,那么在拥有粉丝的用户当中粉丝数量的分布如下:

不足10个粉的占87%,我果然也是芸芸众生之一(只有1个粉= =),还有3%的人生赢家。

新生力量中粉丝数量TOP 3 up主分别是:

1.KrisKingdom翻译组(鲜肉吴亦凡的多语种翻译组)

2.环球时报英文北京版

(没有简介,看了下主页,投稿都是些“老外同志帅哥谈gay在华生活是一种什么样的体验”......)

3.opening左研开(投稿几乎全是游戏,以FGO为主。好巧,我也是FGO的脑残粉= =)

说道up主与粉,我之前猜想投稿数与粉丝数呈中度线性相关,不过结果↓

R平方项为0.1281,几乎不相关,至于它们之间到底是呈现别的相关关系还是干脆没关系,这个后面再探索。

下面是用户的活跃(等级)情况

由于注册时间较短,我把LV.1以上(不含LV.1)的用户当做活跃用户,LV.1的为普通用户,LV.0为僵尸用户。

注:在此贴上B站会员等级及经验值相关的官方说明,参照这个综合了各项因素,我把四个月不到的时间内新注册用户的活跃度按照上述分法划分,LV.0用户没有通过答题测试,也没有邀请码,他们不能发弹幕,也不能观看少部分限制正式会员身份的视频,也许对于B站来说他们不能算用户,我暂且把他们归类为“僵尸”。

至于“僵尸”的比例为何这么大,个人觉得无非以下几种情况:1.题目太难,他们一直通不过;2.懒得买邀请码(3年前某宝上几毛钱一个......);3.反正大部分视频都能看,又对弹幕没兴趣,懒得转正。4.B站为了融资注的水(开玩笑= =)

我周围有不少小伙伴几乎每天都上B站看片,但他们连号都没有,也许类似的人还有很多。

最后看一下星座(什么?),在看爬下来的数据时发现生日数据的年份全部显示0000,上去一看发现公开资料中已经不显示年份了,只有日月,不想浪费掉,于是做了张星座分布图,权当一乐O(∩_∩)O

注:不含1月1日

好均匀的大饼

以上!

写在后面:

做这个还真是“千辛万苦”,刚开始启动爬虫程序时,出现了Memory Error,这个是python消耗的计算机资源过大,一般情况下换成64位python就没问题了,我机子就是32位,没法换,于是把迭代区间缩的很小,分N次爬取,本来打算爬个半年的,生生砍成了三个月半。后来怕ip被干掉找了个代理,花钱提取了100个没一个能用,太坑爹了,勉强找了一个能连上,一直用那个,并没有被封= =还有虽然模仿了浏览器访问但仍然报错403,查了下可能是访问太频繁,看了不少技术博客最后还是没解决......只能用时间来弥补。

拿到数据后想直接从数据库导入R,尝试了RODBC包,RMySQL包,sqldf包,都无法识别host(早知道就装在本机),只好导出为csv文件,然后通过read.csv()读到R中,幸好没有崩溃......

所有图都是R自带的函数做的,pie(),barplot()等,关于它们的参数和其他作图的扩展包后面有时间会慢慢研究。

上一篇 下一篇

猜你喜欢

热点阅读