查看原文
其他

透过评论看Runningman

zuobangbang Python与数据分析 2019-02-23

作者:zuobangbang

来源:zuobangbang


      《Running Man》是韩国SBS电视台在《星期天真好》单元推出的户外竞技真人秀节目。节目致力于打造一个不同于Real variety的新型态娱乐节目。每期有不同的主题,由不同的嘉宾参演,分为不同的队伍进行比赛,通过完成各种游戏任务,最后获胜一方将获得称号或奖品。成员组成包括原六位成员刘在石、池石镇、金钟国、HAHA(河东勋)、宋智孝、李光洙 ,以及两位新成员全昭旻、梁世灿。

以上抄自百度百科。。。


抓取数据


自从限韩令发布后,running man在除B站以外的各大视频网站均下架,所以本文从B站出发,抓取相关视频的所有评论。由于相关视频非常多,本文选择了最具代表性,点击量观看次数最多的视频。进入这个页面后开始抓包(https://www.bilibili.com/video/av18089528?from=search&seid=

16848360519725142300)不断点击下一页,可以发现reply?callback=这个文件一直在出现。

打开其中一个文件以后可以看到每一面的评论都在里面;只需构建出类似的URL就可以把所有的评论都爬下来啦。

分析一下这个URL:https://api.bilibili.com/x/v2/replycallback=jQuery17201477141935656543_1541165464647&jsonp=jsonp&pn=368&type=1&oid=18089528&sort=0&_=1541165714862

pn是页面数,_对应距离1971年1月1日的秒数,直接用time.time就可以获得,其余参数保持不变。数据格式是json,但是B站有点小狡猾啊~它把所有的json数据都存在jQuery17201477141935656543_1541165464647(。。。)这个里面,所以提取的时候要处理一下(talk is cheap,show me the code)

html=requests.get(url,headers=headers).text
html=json.loads(html.split('(',1))[1][:-1])

最后我们把所有的评论都抓取下来存入excel中,数据格式是这样子的:

写入csv的时候一定要记得encoding='utf-8',就因为少了这个,数据总会乱码,因为各种奇葩的原因(点了一下,拉宽了一下,原地保存一下。。。)



数据清洗


对于B站的各种缺失数据,就直接用0替换;对于诗歌类的评论,它存到csv时是一句占一行,而它的其余信息都会存到最后一行,所以在处理时,把前面的n-1行打包append到n行的评论中,再把n-1行删除;对于B站返回的时间(类似于1540882722);用time.strftime('%Y-%m-%d %H:%M:%S,time.localtime())变换成2018/11/12    22:15:15。


数据分析


清理后一共得到7513*11条数据,接下来对数据进行一些分析,数据分析通过python和R完成。

男女分布

从饼图可以看出,近六成的人选择保密个人信息,公开信息显示女生仅比男生多3%。这个结论是出乎意料的。原来不论男女都很喜欢runningman。

评论周分布

running man在韩国的更新时间是每周天下午,但是要到周一B站才会有所更新。因此从评论周分布图可以看到,星期一的评论数是远远大于其他时间的,其次是星期二和星期天,正好在runnning man 更新前后,对比其他时间段评论数有一定增长。

评论时间分布

除了每周评论数,对于评论数的日趋势也十分好奇,大家一般会在什么时间段内观看评论呢?


根据上图可以看到,在6点以后迎来一个爆炸性增涨,在11点-13点之间达到峰值,其次是在15点-17点之间迎来第二波小高潮。在晚间,除了20点有一定下降外,评论数都接近500条。而午夜评论数最少,不过还是有不少夜猫子啊。

评论字数与点赞数

对比每条评论的字数与点赞次数,从上图可以看到,评论的字数越多,获得赞的概率就越大:100字以上的评论获得赞的平均次数远高于100字以下的评论,而那些10个字以内的评论基本没有获得赞,所以只要你是认真评论写出大家的心声,就能获得大家的认同。

情感分析

将大家的评论分别进行情感分析,越接近1说明正面情感越强烈;相反越靠近0负面情绪越强。从上图可以看到,虽然有近600人的评论是非常负能量,但是绝大多数的人都是1分,0.9分。在running man给我们带来欢乐与感动的同时,大家对running man是满满的宠爱啊。

话题度排行

一直都很好奇在观众心中哪个mc的话题度最高,所以做了一个话题度排行。从上图可以看到haha是最具话题性的mc(这个结果有点出乎意料呢)其次是李光洙和宋智孝。因为笔者统计的是2018年的running man ,所以gary的数据是有点凄惨的。对比两个新成员,全妹的话题度比世赞高的不是一点点。


       running man一直都不缺cp,前有周一情侣Gary和宋智孝,权力夫妇刘在石和金钟国,老年line刘在石和池石镇,我兄我弟金钟国和haha,背叛者联盟必触cross;现在又有国民兄妹刘在石和全昭敏,麻浦兄妹宋智孝和haha,烤肉line金钟国haha等等。他们的关系错综复杂,所以笔者打算好好扒一扒观众眼中的各种line。

成员关系矩阵


满分为100分,可以看到池石镇和刘在石;刘在石和李光洙;金钟国和宋智孝;Gary和宋智孝;haha和李光洙;全昭敏和宋智孝的相关性均非常高,其中Gary和宋智孝的相关性居然达到40,也就是说评论中如果有GARY那么有四成的概率会出现宋智孝,周一情侣真的是深入人心。其次是宋智孝和金钟国,看来之前还一直有人说他俩会结婚也不是空穴来潮;而梁世赞与其余成员的相关性都很高,这说明大家都不怎么单独提到他,希望世赞可以早日找到自己的定位;获得观众的认可!

社交网络关系网

在社交网络关系网中,按红,黄,绿,蓝将联系的紧密程度划分为四个等级,其中红色代表联系非常紧密,而蓝色是不紧密。可以看到,李光洙,haha,刘在石三人联系非常紧密,同时金钟国和宋智孝的关系也非常密切。对于Gary,自从他退出running man以后,各成员和他的联系都非常小。

词云图

这个词云图我是用R做的,但是R的词云图背景是要全黑和全白,所以就放弃了给词云加个图案的想法。。。回到词云图,可以看出,大家对于节目本身,各位成员的讨论是很多的,同时在评论里也表达了自己对running man各种喜爱之情。


最后,希望running man 给我们带来越来越多欢乐,收视率越来越好噢。相关代码后续会上传到Github(笔者还木有搞明白怎么上传上去)



想第一时间看到公众号的精彩文章,

赶快把公众号设为星标吧,

打开公众号,点击“设为星标”就可以哦~

推荐阅读:

◆ ◆ ◆  ◆ ◆



欢迎关注【Python与数据分析】



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

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