社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python爬取620首虾米歌曲,揭秘五月天为什么狂吸粉?!

CDA数据分析师 • 6 年前 • 466 次点击  

作者 | Yura

来源 | CSDN(ID:CSDNnews)


最近两天,我被朋友圈的五月天粉丝(五迷)疯狂刷屏,“五月天永远陪你到20岁”“演唱会即视感”,这些字眼让我恨不得马上奔到电影院打卡。

作为五迷,我是满怀激情地在写这篇文章呀(美容觉什么的先不谈了,五月天要紧)。

今天我就用Python爬一爬虾米音乐,半分析半安利地给大家介绍一下这个充满有趣灵魂的组合。


数据获取


本次爬虫主要目的是爬取五月天所有歌曲的信息,信息维度当然是越多越好啦。

直接搜索关键词“五月天”,可能会出现歌名是“五月天”的信息,或者别人翻唱“cover五月天”的内容,搜索范围变大,多抓取了不少无用信息。

所以我以“五月天-艺人-专辑信息-歌曲id-歌曲详情”这个路径进行数据爬取。我发现,无论是专辑信息、歌曲list还是歌曲详情,都存在于非常漂亮的JSON格式里面:

本来可以美滋滋“唰唰唰”地批量下载。但是!URL里面有一个s的参数,我暂时找不到变化的规律(摔!)因为赶时间,就另辟蹊径,用相对麻烦一点的beautiful soup库来解析网页源代码的内容,过程很坎坷,这就是我为什么五月天大电影上映凌晨还在写这篇文章的原因……

而且,爬虫的时候我还遇到两个坑:

1.两天前能运行的代码,在今天居然解析不到所需的内容了,因为爬取的东西内容格式发生了很大变化。难道是我正巧赶上了他们内部修改源代码的节点嘛?无从查证。

2.两天前还在显示的歌曲详情(播放量和收藏量),今天一看全都变成0了,每首歌都这样。我让别的朋友用其他电脑查看,也是没信息的。“检查”了一下,Play Count这些参数直接变成Null了…?

最后得到三个文件,分别是专辑信息(50张)、歌曲列表(620首)和歌曲详情(620首),主要是通过专辑字符和歌曲id进行相关联,具体字段如下:

  • 专辑信息(专辑种类、ID、封面、名字、艺术家、收藏数、语言、播放数、推荐数、歌曲数量、专辑字符、评分、评分人数、发布时间)

  • 歌曲列表(专辑名字、歌曲名字、ID、时长、播放量)

  • 歌曲详情(歌曲名字、别名、歌曲ID、时长、播放次数、作词、作曲、编曲、专辑名字、歌词、热门第一条评论、评论点赞数)

PPPs:不成熟的代码我一定会在一周之内更新到这儿(https://github.com/PengYura)


数据清洗


国际惯例:Excel画图表+Python画词云,(自认为)简单粗暴又高效。


数据分析


截止目前在虾米音乐平台关于五月天的一共有50张专辑,其中“正正经经”的专辑有9张(“录音室专辑”),“单曲”类专辑有20张,歌曲数量在1到6首不等。

判断作品的优劣,最明显快速的方式就是查看大众对其的评分,我们来瞧瞧这50张专辑的评分分布👇:

可以看到,将近一半的的专辑评分在9.8-10.0之间,只有3张专辑评分没超过9分。说明大众对其认可度还是相当高的。

五月天曾说过只会出10张专辑,随着2016年《自传》的发布,现在已经有9张跟大家见面啦。我们先看看这9张的数据情况。

按照发布时间顺序排列:

按照时间间隔可以看到,emmm,他们发专辑的间隔从1年慢慢变成2年、3年和5年,我很有理由怀疑下一张专辑可能在5年之后。

再看到发布时间的月份,4张专辑都是在7月份,其余的分布在10月、11月和12月,这…...难道是某种症(拖延症?)的体现?

据说五月天只会出10张专辑,我非常期待第10张,我也非常害怕10张之后再无新作品(那我的人生还有什么盼头)。

从评论收藏数量来看,最新专辑《自传》的播放数达7亿多次,收藏数量将近30万,推荐人数也是处于遥遥领先的地位。其次是《后青春的诗》和《第二人生》,分别占据了播放数和推荐数的第二。

但是我觉得很多别的老歌也都是很好听的呀,传唱度甚至更高。我们也可以在下面的歌曲详情分析中略窥一二👇。

根据专辑信息里面的歌曲ID(字符串形式和数字形式皆可),我们可以顺藤摸瓜爬取歌曲的信息(https://www.xiami.com/song/歌曲id),一共得到620首,除去没歌词的纯音乐歌曲55首,还剩565首。


这565首歌中,时长最短的是《轻功(京片子版)》,只有25秒。但是不管怎么样,也是李大哥的《贝贝》的6倍多了(逃)。

最长的是《出头天/憨人(live)》,有12分20秒。歌曲整体时间分布还是符合正态分布的,75%的歌曲时长都在4到7分钟之间。

神奇的是,平均每首歌的播放数量也是如此的趋势:时长为5分钟的歌曲平均每首歌播放次数有219w+。所以呀,写歌还是写5分钟多的,也许这样更容易火呢~

再看看播放数量TOP20的歌曲:

虽然《自传》专辑的歌曲拥有45%(9首)的占榜率,但是耳熟能详的《突然好想你》仍然以1.5亿次的播放量稳居TOP1。

这首歌有没有让你想起你的某位故人?

前面提到了专辑种类有许多,什么录音室专辑啦,现场专辑啦,精选集啦。里面有很多歌曲是一样的,只是版本不一样。

去重之后发现还剩177首歌。我们从歌曲的创作内容来看看五月天的歌到底有什么特点。

每首歌都要经历作词、作曲和编曲的过程。在这177首歌里面,主唱阿信参加了139次作词、100次作曲,我说一句阿信是创作小王子没人反对吧!

编曲方面,68%的歌曲都是由五月天整个团队完成的,还有31首歌是有其他人参与合作的,合作次数最高的是周恒毅(8次)。

为歌词做个词云,我发现了五月天为什么总是吸引大批五好青年的原因:胸怀“世界”,心中充满”爱“,敢“想”敢“笑”,不惧“人生”和“回忆”,勇敢怀揣着“梦”想。试问谁听了这些歌曲还能安然地继续做“咸鱼”呢?

关于歌曲评论,我只简单爬取了每首歌的第一条热门评论和点赞数,你猜怎么着?点赞数最高的3条内容,其中两条内容迷之接近:

Ok,我承认,我就是为了听五月天而下载虾米的,肤浅而热烈。

文章开头提到了,五月天最近的演唱会纪实大电影《五月天人生无限公司》在昨天上映啦。

这部电影记录了五月天从2017年3月18日到2019年1月6日,415万歌迷穿过55座城市陪伴打卡的122场演唱会。我因为种种原因还没去打卡这部电影。但是,我还是忍不住去豆瓣看了大家的评论。

截止目前豆瓣评分8.9分,65%的观众给这部电影打了满分!作为400万群演之一,我觉得我很骄傲!

最后的最后,一场生活一场五月天,加入五月天永远不会太迟让我们一起迈向80岁🎵

作者简介:Yura,计算机科学与技术专业大四在读,因在澳洲交换学习接触了大数据,甚感兴趣。遂开公众号“Yura不说数据说”督促自己学习数据分析!欢迎大家关注我的个人公众号,一起(监督我)学习。

(*本文仅代表作者观点,转载请联系原作者)




CDA 课程咨询丨赵老师

联系电话:13381275813
扫描二维码



更多精彩文章

· 分析复联系列电影台词,看看每个英雄说得最多的词是什么

· 从全方位为你比较3种数据科学工具的比较:Python、R和SAS

· 干货 | 如何用Python开启你的机器学习之路

· 第九届CDA认证考试,首位 Level 3 数据科学家诞生!!

· 免费!10本必读的机器学习书籍(附下载)




Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/33625
 
466 次点击