【简介】:今天我们要说的是哔哩哔哩和毛不易发布的毕业季主题曲《入海》,以及背后不一样的毛不易。Python的技术部分请参考第三部分。给我数据,用数据说话!今天我们要说的是毛不易的《入海》,没错,还是哔哩哔哩,又在520“搞事情”了,一个既浪漫又有营销价值的日子。5月20日,哔哩哔哩联合毛不易发布毕业季主题曲《入海》。这首歌的主题是“献给即将毕业或已经毕业的人”。歌曲MV以主人公毕业时的时光为原点,追忆往事,用大量篇幅展现了普通人毕业后的社会生活。这首歌一出,就成为了B站的热门话题,截至5月24日,B站的播放量达到了800万+,收获了5.2万个弹幕。全站日最高排名1,今天就带大家一起解读这首歌《入海》,以及背后不一样的毛不易。01.毛不易的歌里你喜欢唱什么?毛不易,本名王维嘉。原本毕业于杭州师范大学护理专业的他,一直梦想成为一名歌手。2017年,参加腾讯视频选秀节目《明日之子》获得全国总决赛冠军,从而正式进入演艺圈。谁能想到,这个长相平平,毫无优势,甚至有点腼腆老实的毛,最终很难夺得冠军。随着《消愁》《像我这样的人》等歌曲的热播,毛不易这个名字也被越来越多的人所熟知。同时,在今年鹅厂的女团选秀节目《创造营2020》中,毛不易更是作为导师加盟。可爱的毛老师这次也圈粉不少。听《消愁》里的《一杯向太阳,一杯向月光》,大概是天赋的缘故,毛不易能写出这个年纪的生活的无奈与纠结,是一种很大的勇气。那么毛不易唱的歌曲有哪些呢?下面一起来看看吧:我们在网易云音乐上对毛不易的歌曲进行了分析整理,共83首歌曲,歌词总字数45577字。我们使用Python来分析这些歌词。歌曲时长的分布首先是歌曲时长,4-5分钟的占比高达43.9%,3-4分钟的占比高达29.27%,2-3分钟的占比高达13.41%。要知道大部分歌曲的时长都在3分钟左右。看来毛不易歌曲的持续时间还是比较长的。SongPositiveEmotionScore我们使用玻色子库对每首歌歌词的情感进行打分。得分范围从0到100分。如果高于50,则为正值。得分越高,积极倾向越高。从分布图可以看出,83首歌曲中,大部分歌曲以正面为主。毛不易最喜欢的词TOP15毛不易喜欢在他最喜欢的歌曲中使用哪些词?我们分析整理出了歌词中出现频率最高的TOP15。可以看出,“等待”、“生命”、“时间”等词出现频率最高,位居前三。“慢慢地”、“相遇”、“河水”、“转角”等更多文艺词汇也榜上有名。有意思的是,“有钱”出现的频率也比较高,排在第四位。02.《入海》全站日排名第一,这首献给毕业季的歌有什么好听的?我们使用Python获取并分析了B站《入海》的MV的评论数据,经过去重后得到了19099个样本。下面让我们看看评论的具体分析。评论用户性别比例首先,评论用户性别比例方面,男性用户占比略高,男性用户占比54.69%,女性用户占比45.31%。评论用户客户端分布那么观看《入海》的用户在观看视频时使用的是什么移动设备呢?经过分析发现,使用iPhone的用户占比很大,远超Andrio系统的用户。第三个是使用ipad的用户。同时我们知道,b站的用户由于参与度等因素,从0到6分布,数字越大,等级越高。在评论这首歌《入海》的用户中,有36.1%的评论是5级的,其次是26.31%的是4级的,只有3.24%的是6级的。这也是因为要成为6级boss是必须的真的太难了。各时间段评论人数评论时间段方面,《入海》于5月20日8点30分发布。发布后,评论人数激增,12点左右评论达到顶峰。这段时间内有20,000条评论。超过7000人评论,远高于其他时间段。之后,评论人数随着时间的推移越来越少,趋于平缓。评论关键词TOP15评论中讨论最多的是什么?经过分析可以看出,“毕业”是被提及最多的词,其次是“后浪”。毕竟作为一个同样关注年轻人的话题,这次的《入海》很容易让大家接触到4日B站放出的5《后浪》视频。同时,“开心”、“入海”、“哭泣”等词也被频繁提及。03.Python分析:B站《入海》评论数据我们使用Python获取并分析了《入海》的MV在B站的评论数据。去重后得到19099个样本,我们来分析一下本周MV用户的评论。整个分析过程分为以下几个步骤:数据采集、数据整理、数据可视化、数据采集。在获取视频评论之前,我们首先要做的是分析它的网页结构,找到目标数据,也就是我们要评论的数据在哪里。经过抓包分析,在network-json标签下,很容易找到数据传输的地址。经过分析和简化,目标数据的url链接为:https://api.bilibili.com/x/v2...其中oid为视频的专属oid,pn为页码。从上图可以看出,评论数据以json数据的形式存在于网页中。目前显示页数976,每页20条评论,评论后数据暂不抓取。接下来,爬虫的思路就很清晰了。从第一页的JSON文件开始,爬取20条评论后,循环pn页面,直到爬取所有评论数据。代码如下:导入需要的包importrequestsimportjsonimportpandasaspdimporttimedefget_bili_comment_one(url):"""功能:定义一个获取一页信息的函数"""#Addheadersheaders={'Host':'api.bilibili.com','Referer':'https://www.bilibili.com/video...','User-Agent':'Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/80.0.3987.149Safari/537.36'}#添加cookiescookies={"cookie":"Copyyourbrowsercookieinformation"}#发起请求try:sr=requests.get(url,headers=headers,=cookies,timeout=3)exceptExceptionase:print(e)r=requests.get(url,headers=headers,cookies=cookies,timeout=3)#解析为字典r_json=json.loads(r.text)#提取信息replies_data=r_json['data']['replies']#usernameuser_name=[i['member'].get('uname')foriinreplies_data]#gendersex=[i['member'].get('sex')foriinreplies_data]#Signaturesign=[i['member'].get('sign')foriinreplies_data]#用户级别current_level=[i['member']['level_info'].get('current_level')foriinreplies_data]#评论内容content=[i['content'].get('message')foriinreplies_data]#用户设备device=[i['content'].get('device')foriinreplies_data]#评论时间content_time=[i.get('ctime')foriinreplies_data]#replyNumberreply_count=[i['rcount']foriinreplies_data]#存储数据df=pd.DataFrame({'user_name':user_name,'sex':sex,'sign':sign,levelvel'current_'content':content,'device':device,'content_time':content_time,'reply_count':reply_count})returndfdefget_bili_comment_all(oid,num):"B"""获取指定页面视频的函数""#循环构建URLdf_all=pd.DataFrame()forpage_numinrange(1,num):try:#构建URLurl='https://api.bilibili.com/x/v2...{}&type=1&oid={}&sort=2'.format(page_num,oid)#df=get_bili_comment_one(url)#判断ifdf.shape[0]==0:Breakelse:#df_all=df_all.append(df,iGnore_INDEX=true)第{}'.format(page_num))页信息除外:break#休眠一秒.sleep(0.5)returndf_all《入海》bilibiliX头发不容易啊|'795637027',num=973)获取的数据以DataFrame的形式存储,格式如下:读取数据df.head()数据集有19099个样本,8个字段,字段名称为:用户名,用户性别,用户签名,用户等级,用户评论,设备名称,评论时间,点赞数df.info()
