/ 01 / 网页分析

01 歌单索引页

2478619-b833638362c033cd

image

选取华语热门歌单页面。

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

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

02 歌单详情页

2478619-879a240841ba402c

image

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

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

这里歌曲的时长、歌手、专辑信息在网页的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张华语歌单。

2478619-b787ed06dcc0a9c7

image

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张华语歌单的详情。

2478619-55eaa03d1b5ec144

image

1302张歌单里的121118首歌。

2478619-efd8dfa7ef66ddaf

image

/ 03 / 数据可视化

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

****01 歌曲出现次数 TOP10****

2478619-2d4e372a2c6d287a

image

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

那么你又是如何的呢?

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

******02 歌单贡献UP主 TOP10******

2478619-b0bb8ec19d1b56c5

image

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

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

03 歌单播放量 TOP10

2478619-131d78e0d9499ff4

image

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

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

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

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

04 歌单收藏量 TOP10

2478619-a0ce243ef1a52bc3

image

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

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

05 歌单评论数 TOP10

2478619-e331da9784a8bd8a

image

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

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

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

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

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

****06 歌单收藏数量分布情况****

2478619-d4d1fdad385cf716

image

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

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

******07 歌单播放数量分布情况******

2478619-0a9724a70bb061a9

image

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

其中ln(10000000)=16。

08 歌单标签图

2478619-78694774820b444c

image

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

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

「流行」没啥好说的。

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

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

09 歌单介绍词云图

2478619-9b25031ca017119b

image

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

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

/ 04 / 总结

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

2478619-3f7783484130f26e

image

2478619-aef601de35ba1399

image

2478619-90673182d5ed2fc4

image

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

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

Python爬虫+可视化实例:网易云音乐歌单相关推荐

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

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

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

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

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

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

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

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

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

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

  6. Python网络爬虫1:网易云音乐歌单

    摘要:从零开始写爬虫,初学者的速成指南! 需要免费获取本文章讲解的视频+源码,关注+转发此文然后私信我回复"音乐"即可领取资料,也欢迎大家和我一起交流学习Python 封面: 大家 ...

  7. python制作音乐相册_Python数据可视化:网易云音乐歌单

    本文转载自公众号 | 法纳斯特 作者 | 小F 网易云音乐2018年度听歌报告-遇见你,真好. 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了. 小F也是去凑凑热闹,瞅了一波自己的年度听歌 ...

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

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

  9. Python数据分析初探项目 基于Python数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022年)

    Python 数据分析初探项目 基于 Python 数据可视化的网易云音乐歌单分析系统 大学编程作业(TUST 天津科技大学 2022 年) Python 数据分析初探项目 基于 Python 数据可 ...

最新文章

  1. react中component存在性能问题
  2. mysql两者之间_sql between 语法与查询两者之间数据方法
  3. 【C++】构建哈希表
  4. 基本select语句的生命周期
  5. 再有人问你MySql的隔离级别,直接把这篇文章发给他!
  6. Qt常用类——Qpoint
  7. 126. PHP 加密
  8. jsp高校科研管理系统servlet设计
  9. 适合新手画PCB线路板的四个软件 2021-10-14
  10. Oracle 使用 PL/SQL Developer 生成 AWR 报告
  11. 如何去掉高CAD选择集对话框(高版本才有)
  12. 输入框限制规则 只能输入数字 只能输入字母数字 等等
  13. #腾讯云·未来开发者云梯计划#第三期上线啦!全国5000个免费云认证培训考试名额开放报名中!
  14. 汽车安全标准ISO-26262以及等级ASIL
  15. 阿里独家揭秘:淘宝全站HTTPS 改造细节
  16. 现代无线侦察技术(二):MANA 和已知信标攻击
  17. 什么是以太网,它在WiFi世界中的价值是什么?
  18. CDA数据分析浙江师范大学 第二期“正阳旅游大数据创新创业班”项目报告会顺利开启
  19. Vue2.X路由小细节--米斯特吴
  20. 基于STM32的物联网智能家居系统 可以实现温度湿度的实时监控

热门文章

  1. openssl 交叉编译 armv7内核
  2. java编程技术交流
  3. getline()函数详解
  4. sed编辑器之删除行
  5. Resharper快捷键使用
  6. superset设置起止时间为明天
  7. Android SELinux 的认知以及 init 的相关知识,Linux 环境利用这2个模块进行白名单测试 -- 架构分析
  8. linux使用sts4,视听说sts4-4
  9. 同步和异步的区别是什么?
  10. R语言 NetCoMi包 Co-occurrence网络图 微生物16S 网络比较 核心物种