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

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

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

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

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

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

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

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

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

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

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

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

/ 01 / 网页分析

01 歌单索引页

选取华语热门歌单页面。

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

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

02 歌单详情页

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

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

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

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

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

/ 02 / 数据获取

01 歌单索引页from bs4 import BeautifulSoup

import requests

import time

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'

}

for i in range(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.text

soup = BeautifulSoup(html, 'html.parser')

# 获取包含歌单详情页网址的标签

ids = soup.select('.dec a')

# 获取包含歌单索引页信息的标签

lis = soup.select('#m-pl-container li')

print(len(lis))

for j in range(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文件中

with open('playlist.csv', 'a+', encoding='utf-8-sig') as f:

f.write(url + ',' + title + ',' + play + ',' + user + '\n')

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

02 歌单详情页from bs4 import BeautifulSoup

import pandas as pd

import requests

import time

df = pd.read_csv('playlist.csv', header=None, error_bad_lines=False, names=['url', 'title', 'play', 'user'])

headers = {

'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'

}

for i in df['url']:

time.sleep(2)

url = 'https://music.163.com' + i

response = requests.get(url=url, headers=headers)

html = response.text

soup = BeautifulSoup(html, 'html.parser')

# 获取歌单标题

title = soup.select('h2')[0].get_text().replace(',', ',')

# 获取标签

tags = []

tags_message = soup.select('.u-tag i')

for p in tags_message:

tags.append(p.get_text())

# 对标签进行格式化

if len(tags) > 1:

tag = '-'.join(tags)

else:

tag = tags[0]

# 获取歌单介绍

if soup.select('#album-desc-more'):

text = soup.select('#album-desc-more')[0].get_text().replace('\n', '').replace(',', ',')

else:

text = '无'

# 获取歌单收藏量

collection = soup.select('#content-operation i')[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文件中

with open('music_message.csv', 'a+', encoding='utf-8-sig') as f:

f.write(title + ',' + tag + ',' + text + ',' + collection + ',' + play + ',' + songs + ',' + comments + '\n')

# 获取歌单内歌曲名称

li = soup.select('.f-hide li a')

for j in li:

with open('music_name.csv', 'a+', encoding='utf-8-sig') as f:

f.write(j.get_text() + '\n')

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

1302张歌单里的121118首歌。

/ 03 / 数据可视化

可视化代码已上传GitHub,点击左下角阅读原文即可访问!!!

01 歌曲出现次数 TOP10

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

那么你又是如何的呢?

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

02 歌单贡献UP主 TOP10

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

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

03 歌单播放量 TOP10

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

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

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

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

04 歌单收藏量 TOP10

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

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

05 歌单评论数 TOP10

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

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

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

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

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

06 歌单收藏数量分布情况

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

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

07 歌单播放数量分布情况

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

其中ln(10000000)=16。

08 歌单标签图

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

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

「流行」没啥好说的。

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

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

09 歌单介绍词云图

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

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

/ 04 / 总结

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

公众号主页 回复 网易云音乐源码获取源码。

另外年度送书25本(包括日历)今晚或明早发快递

所有书都有签名,我挑几本大家看一下, 经常刷脸的一定是可以拿到书的。

下面感受一波有温度的签名,字丑别笑。

python音乐可视化效果_Python数据可视化 | 网易云音乐年度歌曲相关推荐

  1. python爬取网易云音乐评论分析_Python爬取网易云音乐评论(附加密算法)

    网易云音乐,里面汇聚了哲学家,小说家,story-teller,皮皮虾等各种人才,某些评论非常值得收藏(甚至开了一个歌单专门收藏它们).竟然这么好玩,何不尝试把他们爬取下来呢? 前置需求 可选:fid ...

  2. python爬取评论_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  3. python爬取网易云音乐热评_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  4. python爬取网易云音乐评论分析_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

  5. python爬取音乐并保存_Python爬取网易云音乐上评论火爆的歌曲

    前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论.但是,网易云音乐并没有提供热评排行 ...

  6. python 支付宝个人账单_解析2018年度三大用户数据报告——网易云音乐、支付宝、微信...

    文章分别给大家简单的解析一下2018年度网易云音乐.支付宝.微信的用户数据报告. 继网易云音乐.支付宝相继发布2018年用户数据报告后,微信也悄悄发布自己的数据报告,截止目前大家期待的三大产品数据报告 ...

  7. android 网易云音乐上滑动画,Android 仿网易云音乐 音轨跳动效果

    网易云音乐的Loading效果,大家应该也比较熟悉了,效果是一个红色音轨不断跳动的效果,一般用于Loading等待时填充使用.本篇来自定义这个效果. Android 仿网易云音乐 音轨跳动View.g ...

  8. 音乐无界限,听见好时光—网易云音乐Linux版震撼来袭!

    为了带来更好的音乐体验,实现对音乐高品质的追求,经过网易云音乐与深度科技团队长达半年多的联合开发,大家期待已久的网易云音乐正式登陆 Linux 平台! 网易云音乐是一款专注于发现与分享的音乐产品,依托 ...

  9. 解锁网易云音乐小工具_什么?网易云音乐又变灰了

    目前音乐市场主要有三大巨头:酷狗音乐,QQ音乐,网易云音乐.QQ音乐与网易云音乐进入市场都较晚,但是网易云音乐凭借灵活的音乐社交玩法积累了非常多的用户,而QQ音乐凭借着有钱优势,购买了很多音乐版权,网 ...

最新文章

  1. 6行代码实现ASP无组件上传
  2. java实体 和 xml相互转换
  3. Download Excel
  4. php accesscontrolalloworigin,php – Access-Control-Allow-Origin没有显示在codeigniter的响应头中...
  5. 1822. 数组元素积的符号
  6. 剧情反转:今年AI要凉!薪资碾压全行,但人才缺500万!
  7. 杂论架构—架构是一种设计 转。。。
  8. oracle or索引失效,以下Oracle错误意味着什么:无效的列索引
  9. linux脚本运行出现bc,Linux硬件管理命令---bc
  10. [渝粤教育] 中国地质大学 砌体结构设计 复习题 (2)
  11. 分享一大波高清电子元器件矢量图,速速下载收藏!
  12. 电脑重置,win10怎么重置此电脑 重置电脑的方法和后果
  13. c语言程序评委评分,c语言编程:歌唱比赛评委评分系统
  14. 服务器租用前如何测试网络速度?
  15. 【MySQL基础攻难1】聚集函数和分组查询
  16. 分布式session会话Sticky Sessions
  17. netcat常用命令
  18. 【三大锁】悲观锁——mysql悲观锁
  19. 计算机网络实验三(基于packet tracer)
  20. linux统计排序命令,Linux命令去重统计排序

热门文章

  1. Ubuntu18.04卸载并重新安装Ubuntu及
  2. 文件复制 要求边读边写
  3. Mybatis Generator(简称MBG)的最完整配置文件详解
  4. Smali语法学习三
  5. 【Go】解析X509
  6. Win10下SQL2000 企业管理器 新建表/修改表 崩溃问题的应急
  7. vue添加背景及页面留白处理方法
  8. Wordpress限制游客访问权限(免插件) 实现禁止游客访问功能
  9. 女孩,既要懂得暧昧,又要懂得拒绝 【20cn 依依】
  10. 高防服务器与高防IP的区别和联系