作者法纳斯特,Python爱好者,喜欢爬虫,数据分析以及可视化。

GitHub:https://github.com/Tobby-star

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

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

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

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

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

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

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

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

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

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

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

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

/ 01 / 网页分析

01 歌单索引页

选取华语热门歌单页面。

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

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

02 歌单详情页

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

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

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

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

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

/ 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(0133035):
    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 + ' ')

获取歌单索引页信息如下,共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(' ''').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 + ' ')
    # 获取歌单内歌曲名称
    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() + ' ')

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

1302张歌单里的121118首歌。

/ 03 / 数据可视化

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

01 歌曲出现次数 TOP10


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

那么你又是如何的呢?

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

02 歌单贡献UP主 TOP10


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

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

03 歌单播放量 TOP10


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

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

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

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

04 歌单收藏量 TOP10

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

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

05 歌单评论数 TOP10

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

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

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

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

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

06 歌单收藏数量分布情况


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

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

07 歌单播放数量分布情况


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

其中ln(10000000)=16。

08 歌单标签图

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

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

「流行」没啥好说的。

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

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

09 歌单介绍词云图


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

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

/ 04 / 总结

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

可视化及相关代码都放「GitHub」上头了。

GitHub:https://github.com/Tobby-star/music_163

跟winter一起学前端

“我是程劭非,网名“winter”,混迹于各大前端社区。作为前手机淘宝前端负责人,我曾带领团队开发出了阿里巴巴开源项目 Weex 移动前端开发框架,也取得了不错的成绩:目前 Weex 可以支持手机淘宝这样的航母级移动应用,把移动应用本身的灵活性、迭代更新的周期和成本优化到极致。

我在 2006 年就开始接触前端。最开始,在微软北京担任软件开发工程师,负责 Windows CE 上的 IE 浏览器开发,接触到了当时最先进的软件工程体系,并且积累了很多 UI 架构经验。

我在阿里做淘宝前端负责人的时候,常常遇到有一些工作多年的前端工程师,在看到一些我认为很基础的用法时惊呼:“还可以这样!”。因此我常戏称很多同学,学前端的方式是“土法学前端”,他们对于知识的理解基本都停留在点上,对前端的知识体系和底层原理没有真正系统地理解。

相信由我来带你“重学”前端,必定会给你与众不同的视角和实战的技巧。”

——摘自极客时间《和winter一起,重学前端》

更多推荐

Python迭代器使用详解

一文读懂Python可迭代对象、迭代器和生成器

用Python爬取金融市场数据

搭建CNN模型破解网站验证码

用Python进行图文识别(OCR)

投稿邮箱:pythonpost@163.com

Python数据可视化:网易云音乐歌单相关推荐

  1. 看我如何用 Python 爬取网易云音乐歌单

    此货很干,跟上脚步!!! Cookie cookie是什么东西? 小饼干?能吃吗? 简单来说就是你第一次用账号密码访问服务器 服务器在你本机硬盘上设置一个身份识别的会员卡(cookie) 下次再去访问 ...

  2. 如何用 Python 爬取网易云音乐歌单

    点击⬆️方"逆锋起笔",公众号回复 编程资源领取大佬们推荐的学习资料 作者:我不是秃头哆唻咪 (侵删) https://blog.csdn.net/weixin_44864260/ ...

  3. 如何用Python爬取网易云音乐歌单

    此货很干,跟上脚步!!! Cookie cookie是什么东西? 小饼干?能吃吗? 简单来说就是你第一次用账号密码访问服务器 服务器在你本机硬盘上设置一个身份识别的会员卡(cookie) 下次再去访问 ...

  4. python爬取网易云音乐歌单

    获取网易云音乐的某个分类下的歌单的详细页地址.歌单标题.歌单播放量.歌单贡献者.歌单索引信息等.并保存到csv文件中去. 用到的模块:requests.time.BeautifulSoup 选择不同类 ...

  5. Python数据分析之定制化网易云音乐歌单

    最近朋友圈刷疯了的几件事: 圣诞节骗我艾特微信官方戴红帽 老的跟树皮似的骗我晒18岁皂片 明明开挂却骗我自己玩的跳一跳 网易云听歌报告告诉我最爱tfboy 支付宝关键词鄙视我太穷丢它脸 个人特别喜欢听 ...

  6. python音乐可视化_Python数据可视化:网易云音乐歌单

    原标题:Python数据可视化:网易云音乐歌单 作者:法纳斯特(本文来自作者投稿,简介见末尾) 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告 ...

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

    (给Python开发者加星标,提升Python技能) 作者:法纳斯特(本文来自作者投稿,简介见末尾) 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年 ...

  8. PHP爬虫音乐,PHP 爬虫———爬取网易云音乐歌单

    爬取网易云音乐歌单 PHP + QueryList + Puppeteer + Nodejs 使用 Composer 安装库 如果你之前没有接触过Composer,强烈建议你学习一下.Composer ...

  9. python网易云_Python数据可视化:网易云音乐歌单

    网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了. 小F也是去凑凑热闹,瞅了一波自己的年度听歌报告. 那么你在云村又听了多少首歌,听到最多的歌 ...

  10. python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单

    通过Python对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析. 可视化库不采用pyecharts,来点新东西. 使用matplotlib可视化库,利用这个底层库来进行可视化展示. 推荐 ...

最新文章

  1. 微信支付(JSAPI) - chooseWXPay fail 问题解决
  2. 【C语言】单链表的所有操作的实现(包括PopBack、PushBack、PopFront、PushFront、Insert)...
  3. BootStrap Table - JS事件绑定
  4. 【赠书】掌握人工智能重要主题,深度强化学习实践书籍推荐
  5. Carbon和Polacode教程
  6. 一篇清华博士的美赛心得 | 参加世界最牛数学建模竞赛是一种怎样的体验?
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的疫情信息管理系统
  8. 中国可打印标签市场趋势报告、技术动态创新及市场预测
  9. base64 convert to file
  10. 2021泰安市地区高考成绩排名查询,2021年山东高考成绩排名及一分一段表
  11. 【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类...
  12. 【php写日志】php将日志写入文件
  13. 微信小程序(底部导航)
  14. php mb_eregi_replace 只替换一个,mb_eregi_replace多个匹配得到它们
  15. 哈尔滨工业大学计算机考研难吗,哈尔滨工业大学计算机考研经验:只有意志坚强才能到达彼岸...
  16. 使用libimobiledevice在linux上挂载iphone6
  17. mysql未开启binlog如何恢复数据_MySQL5.7开启binlog日志,及数据恢复简单示例
  18. 360 os3.0 android7.1,【360 N6】360OS安卓7.1系统V3.0.070付费纯净版ROOT刷机包
  19. js获取input输入框的值
  20. python3指定目录所有excel_Python——合并指定文件夹下的所有excel文件

热门文章

  1. MacOS下解决宿主机和docker容器之间网络互通
  2. 定制Android模拟器skin
  3. ECSHOP二次开发帮助之全部程序文件说明
  4. (重点)微服务核心研究之--编排
  5. UWP-Naïve Media Player 2.0
  6. android 录屏工具,ShareREC for Android全系统手机录屏软件原理解析
  7. Excel公式笔记(COUNTIFS)
  8. 样本量太小怎么做结构方程模型?
  9. OpenCV(三)彩色图灰度化、通道分离、单通道反差处理(灰度图)、多通道反差处理(彩色图)
  10. idv和vdi的优劣势_桌面虚拟化中VDI与IDV的区别?