1. 首页
  2. IT资讯

Python数据可视化:网易云音乐歌单

本文转载自公众号 | 法纳斯特

作者 | 小F

网易云音乐2018年度听歌报告—遇见你,真好

相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了。

小F也是去凑凑热闹,了一波自己的年度听歌报告。

那么你在云村又听了多少首歌,听到最多的歌词又是什么呢?

2018年你的年度歌手又是谁,哪些又是你最爱的歌呢?

Python数据可视化:网易云音乐歌单

这是老表的,最爱花花

不过相比去年,我的票圈并没有很多发自己年度报告的朋友。

不得不说,版权之争开始,网易云音乐似乎就在走下坡路。

很多喜欢的歌听不了,这应该是大家共同的痛点。

最大的印象就是周董的歌,在愚人节时下架了,原以为只是个玩笑,不想却是真的。

本次通过对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析。

可视化库不采用pyecharts,来点新东西。

使用matplotlib可视化库,利用这个底层库来进行可视化展示。

/ 01 / 网页分析

01 歌单索引页

Python数据可视化:网易云音乐歌单

选取华语热门歌单页面。

获取歌单播放量,名称,及作者,还有歌单详情页链接。

本次一共获取了1302张华语歌单。

02 歌单详情页

Python数据可视化:网易云音乐歌单

获取歌单详情页信息,信息比较多。

有歌单名,收藏量,评论数,标签,介绍,歌曲总数,播放量,收录的歌名。

这里歌曲的时长、歌手、专辑信息在网页的iframe中。

需要用selenium去获取信息,鉴于耗时过长,小F选择放弃…

有兴趣的小伙伴,可以试一下哈…

/ 02 / 数据获取

01 歌单索引页

frombs4importBeautifulSoupimportrequestsimporttimeheaders={'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/63.0.3239.132Safari/537.36'}foriinrange(0,1330,35):print(i)time.sleep(2)url='https://music.163.com/discover/playlist/?cat=欧美&order=hot&limit=35&offset='+str(i)response=requests.get(url=url,headers=headers)html=response.textsoup=BeautifulSoup(html,'html.parser')#获取包含歌单详情页网址的标签ids=soup.select('.deca')#获取包含歌单索引页信息的标签lis=soup.select('#m-pl-containerli')print(len(lis))forjinrange(len(lis)):#获取歌单详情页地址url=ids[j]['href']#获取歌单标题title=ids[j]['title']#获取歌单播放量play=lis[j].select('.nb')[0].get_text()#获取歌单贡献者名字user=lis[j].select('p')[1].select('a')[0].get_text()#输出歌单索引页信息print(url,title,play,user)#将信息写入CSV文件中withopen('playlist.csv','a+',encoding='utf-8-sig')asf:f.write(url+','+title+','+play+','+user+'n')

获取歌单索引页信息如下,共1302张华语歌单。

Python数据可视化:网易云音乐歌单

02 歌单详情页

frombs4importBeautifulSoupimportpandasaspdimportrequestsimporttimedf=pd.read_csv('playlist.csv',header=None,error_bad_lines=False,names=['url','title','play','user'])headers={'User-Agent':'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/63.0.3239.132Safari/537.36'}foriindf['url']:time.sleep(2)url='https://music.163.com'+iresponse=requests.get(url=url,headers=headers)html=response.textsoup=BeautifulSoup(html,'html.parser')#获取歌单标题title=soup.select('h2')[0].get_text().replace(',',',')#获取标签tags=[]tags_message=soup.select('.u-tagi')forpintags_message:tags.append(p.get_text())#对标签进行格式化iflen(tags)>1:tag='-'.join(tags)else:tag=tags[0]#获取歌单介绍ifsoup.select('#album-desc-more'):text=soup.select('#album-desc-more')[0].get_text().replace('n','').replace(',',',')else:text='无'#获取歌单收藏量collection=soup.select('#content-operationi')[1].get_text().replace('(','').replace(')','')#歌单播放量play=soup.select('.s-fc6')[0].get_text()#歌单内歌曲数songs=soup.select('#playlist-track-count')[0].get_text()#歌单评论数comments=soup.select('#cnt_comment_count')[0].get_text()#输出歌单详情页信息print(title,tag,text,collection,play,songs,comments)#将详情页信息写入CSV文件中withopen('music_message.csv','a+',encoding='utf-8-sig')asf:f.write(title+','+tag+','+text+','+collection+','+play+','+songs+','+comments+'n')#获取歌单内歌曲名称li=soup.select('.f-hidelia')forjinli:withopen('music_name.csv','a+',encoding='utf-8-sig')asf:f.write(j.get_text()+'n')

获取的1302张华语歌单的详情。

Python数据可视化:网易云音乐歌单

1302张歌单里的121118首歌。

Python数据可视化:网易云音乐歌单

/ 03 / 数据可视化

01 歌曲出现次数 TOP10

Python数据可视化:网易云音乐歌单

榜上的十首歌,除了「水星记」,小F听得次数都不少。

那么你又是如何的呢?

在小F的印象里,这些歌都曾在网易云音乐热歌榜的榜首出现过。

02 歌单贡献UP主 TOP10

Python数据可视化:网易云音乐歌单

10大歌单贡献UP主,感谢这些辛勤的“搬运工”,给大家带来优质的歌单。

给广大懒人癌患者,亦或选择困难症患者,带来福利。

03 歌单播放量 TOP10

Python数据可视化:网易云音乐歌单

歌单播放量前十名单,第一名7000多万播放量。

其实matplotlib生成的图是挺清楚的,只不过一上传就变模糊了。

所以这里你可能会觉得图片质量不行…

其实并不是,为此小F做了相应的图表,具体见文末~

04 歌单收藏量 TOP10

Python数据可视化:网易云音乐歌单

同样是好东西,收藏收藏!!!

有一些歌单和播放量TOP10里歌单有重复。

05 歌单评论数 TOP10

Python数据可视化:网易云音乐歌单

歌单「再见大侠:武侠小说泰斗金庸逝世」评论数最多。

相信不少人的阅读时光,就是与金庸前辈的武侠小说一起度过。

飞雪连天射白鹿,笑书神侠倚碧鸳。

还有由小说改编成的电视剧,都是经典!!!

小F武侠小说看的少,武侠电视剧看的多…

06 歌单收藏数量分布情况

Python数据可视化:网易云音乐歌单

将收藏数做对数处理,使得能直观看出歌单收藏数的分布。

主要分布在0-15万之间(ln(150000)=12)。

07 歌单播放数量分布情况

Python数据可视化:网易云音乐歌单

歌单播放数主要分布在0-1000万。

其中ln(10000000)=16。

08 歌单标签图

Python数据可视化:网易云音乐歌单

既然选取的是华语歌单,那么华语这二字必不可少,而且还占大头。

那么就看看除了华语,还有什么其他标签。

「流行」没啥好说的。

「古风」「说唱」「民谣」近些年来热度是越来越高,不过也有玩坏的时候。

比如「离人愁」、「一人我饮酒醉」,小F作为吃瓜群众,只能说且行且珍惜…

09 歌单介绍词云图

Python数据可视化:网易云音乐歌单

歌单介绍词云图,希望你能找到你喜欢某首歌的原因!!!

到底是希望,还是青春,亦或是回忆呢?

/ 04 / 总结

最后,把本次搜刮的干货,分享给大家。

Python数据可视化:网易云音乐歌单

Python数据可视化:网易云音乐歌单

Python数据可视化:网易云音乐歌单

|日打卡主题

第n天打卡,2018年你最喜欢哪一首歌,那一句歌词,欢迎分享,一起喜欢。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31556503/viewspace-2563554/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:布吉卡,转转请注明出处:http://www.cxybcw.com/193491.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code