Python爬虫+可视化实例:网易云音乐歌单
/ 01 / 网页分析
01 歌单索引页
选取华语热门歌单页面。
获取歌单播放量,名称,及作者,还有歌单详情页链接。
本次一共获取了1302张华语歌单。
02 歌单详情页
获取歌单详情页信息,信息比较多。
有歌单名,收藏量,评论数,标签,介绍,歌曲总数,播放量,收录的歌名。
这里歌曲的时长、歌手、专辑信息在网页的iframe中。
需要用selenium去获取信息,鉴于耗时过长,笔者选择放弃...
有兴趣的小伙伴,可以试一下哈...
/ 02 / 数据获取
01 歌单索引页
from bs4 import BeautifulSoup
import requests
import timeheaders = {'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.textsoup = 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 timedf = 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' + 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-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
Python爬虫+可视化实例:网易云音乐歌单相关推荐
- python音乐可视化_Python数据可视化:网易云音乐歌单
原标题:Python数据可视化:网易云音乐歌单 作者:法纳斯特(本文来自作者投稿,简介见末尾) 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告 ...
- PHP爬虫音乐,PHP 爬虫———爬取网易云音乐歌单
爬取网易云音乐歌单 PHP + QueryList + Puppeteer + Nodejs 使用 Composer 安装库 如果你之前没有接触过Composer,强烈建议你学习一下.Composer ...
- python网易云_Python数据可视化:网易云音乐歌单
网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了. 小F也是去凑凑热闹,瞅了一波自己的年度听歌报告. 那么你在云村又听了多少首歌,听到最多的歌 ...
- Python ln_Python数据可视化:网易云音乐歌单
(给Python开发者加星标,提升Python技能) 作者:法纳斯特(本文来自作者投稿,简介见末尾) 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年 ...
- python可视化分析网易云音乐评论_Python数据可视化:网易云音乐歌单
通过Python对网易云音乐华语歌单数据的获取,对华语歌单数据进行可视化分析. 可视化库不采用pyecharts,来点新东西. 使用matplotlib可视化库,利用这个底层库来进行可视化展示. 推荐 ...
- Python网络爬虫1:网易云音乐歌单
摘要:从零开始写爬虫,初学者的速成指南! 需要免费获取本文章讲解的视频+源码,关注+转发此文然后私信我回复"音乐"即可领取资料,也欢迎大家和我一起交流学习Python 封面: 大家 ...
- python制作音乐相册_Python数据可视化:网易云音乐歌单
本文转载自公众号 | 法纳斯特 作者 | 小F 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了. 小F也是去凑凑热闹,瞅了一波自己的年度听歌 ...
- Python数据分析之定制化网易云音乐歌单
最近朋友圈刷疯了的几件事: 圣诞节骗我艾特微信官方戴红帽 老的跟树皮似的骗我晒18岁皂片 明明开挂却骗我自己玩的跳一跳 网易云听歌报告告诉我最爱tfboy 支付宝关键词鄙视我太穷丢它脸 个人特别喜欢听 ...
- Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)
Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...
最新文章
- react中component存在性能问题
- mysql两者之间_sql between 语法与查询两者之间数据方法
- 【C++】构建哈希表
- 基本select语句的生命周期
- 再有人问你MySql的隔离级别,直接把这篇文章发给他!
- Qt常用类——Qpoint
- 126. PHP 加密
- jsp高校科研管理系统servlet设计
- 适合新手画PCB线路板的四个软件 2021-10-14
- Oracle 使用 PL/SQL Developer 生成 AWR 报告
- 如何去掉高CAD选择集对话框(高版本才有)
- 输入框限制规则 只能输入数字 只能输入字母数字 等等
- #腾讯云·未来开发者云梯计划#第三期上线啦!全国5000个免费云认证培训考试名额开放报名中!
- 汽车安全标准ISO-26262以及等级ASIL
- 阿里独家揭秘:淘宝全站HTTPS 改造细节
- 现代无线侦察技术(二):MANA 和已知信标攻击
- 什么是以太网,它在WiFi世界中的价值是什么?
- CDA数据分析浙江师范大学 第二期“正阳旅游大数据创新创业班”项目报告会顺利开启
- Vue2.X路由小细节--米斯特吴
- 基于STM32的物联网智能家居系统 可以实现温度湿度的实时监控