作为网易云村的深度用户,网易云音乐应该是我除了微信外打开时间最长的 App 了。并不是应为网易云上面的歌曲多,而是因为那些走心的评论。边听歌边刷评论,感觉就像是走进了他人的人生之中,从另外一种意义来讲也是让自己有限的人生得以延长,变得更加多姿多彩。

直到有一天我像往常一样划拉着评论,一不小心手指触碰到了某个用户的昵称,然后就去到了他的个人主页。咦,原来这里是可以点进去的啊,在他的个人主页我可以看到他的听歌排行榜、创建的歌单以及收藏的歌单,而且我并没有关注他。

此时的我突然灵机一动,岂不是可以用这个来查看小姐姐最近都在听什么类型的歌,而且歌曲在一定程度上还反映了听歌人的心情,真是一举两得呀。

接口分析

首先我们进打开网易云网页版,随便选取一首歌后进入其评论列表,然后再选取一个评论者进入到他的个人主页,不出意外的话就可以看到他最近的听歌排行了。

来,我们观察下 URL,它应该像是下面这个样子的。为了保护用户隐私我隐藏了最后四位数字。仔细看这 URL 我们猜测最后的参数应该是用户的唯一 ID 标识,那么我们如何才能获取到小姐姐的网易云 ID 呢。别急,下文会说。

https://music.163.com/#/user/home?id=4682****

接着按 F12 打开浏览器开发者调试窗口,刷新页面分析下网络请求。

嗯,就是这个接口了,返回的数据有 100 条记录,我们可以点击网页「听歌排行」右下角的「查看更多」来确认下,发现确实是只能查看最近的 100 首,

获取数据

接口获取到了,剩下获取数据的工作就不难了,直接写一个爬虫爬下来即可。

import requests
import json# 模拟浏览器请求
headers = {'Referer': 'http://music.163.com/','Host': 'music.163.com','User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36','Accept': '*/*',
}# 构建 URL 以及 POST 参数
url = 'https://music.163.com/weapi/v1/play/record?csrf_token='
data = {'params': 'xrJhjXYUqEWa98DVbFtw6yTygOTCOvSAypxfWNr5kpw/MEvXsRk+Av+DNF7zY9a1oA95FBTXdW9s/MJV+eQVfCGi+/NVW7nD0igfJSsmDtE3VpM422dZR6WJGDxS3/se00qFFHx6wumfLzc9mgnfB5hGkrBwF9+P/7zamjfWSOUfvvUuWhM2Gd7z2pA11lMB','encSecKey': '2371bb4de91d5de7110722d3491c7cf6d3f6f5cdcbc16a5e9c7456e4b9075c1965d851d4920fa51adae6ff1c7b722539fb03dd2ab148894c2dc9c8ba0bbb5e95bbbd2bf4fbf02023cf63391f74b6956339cb72fa32a4413de347ffb536299f5711fe02fe60f66b77ac96a16a6bcb5ba14cf9b1609ddf8e8180d683bba5801acf'
}# 发送 post 请求,第一个参数是 URL,第二个参数是请求参数
req = requests.post(url, data)  print(json.loads(req.text))# 输出结果
{"allData":[{"playCount":0,"score":100,"song":{"name":"盛夏光年 (2013版)","id":28181110,"pst":0,"t":0,"ar":[{"id":13193,"name":"五月天","tns":...

注意,因为我们最后要获取的是歌手的名字。所以,需要将获取到的数据结果格式化一下。

result = json.loads(req.text)
names = []
for i in range(100):names.append(result['allData'][i]['song']['ar'][0]['name'])# 准备生成云图的字符串
text = ",".join(names)

生成云图

最后,将我们上面获取到的歌手集合生成一张词云图即可。

import matplotlib.pyplot as plt
from wordcloud import WordClouddef show_word_cloud(text):wc = WordCloud(font_path='/System/Library/Fonts/PingFang.ttc', background_color="white", scale=2.5,contour_color="lightblue", ).generate(text)# 读入背景图片WordCloud(background_color='white', scale=1.5).generate(text)plt.figure(figsize=(16, 9))plt.imshow(wc)plt.axis('off')plt.show()

最后,万事俱备,就差小姐姐的网易云用户 ID 了。其实很简单,找一下她之前给你分享过的歌曲记录就可以啦,微信打开歌曲链接,点击右上角三个点,然后选择「复制链接」,之后你会得到类似下面的一个链接。没错,那个 userid就是用户唯一标识了。

https://y.music.163.com/m/song?id=4587****&userid=4682****&from=message

总结

今天我们总结了如何用 Python 来获取小姐姐的最近听歌排行榜,如果以后觉得没有什么话题可聊的话就从她喜欢的歌曲开始吧。小伙伴们都学会了么?

实战!Python 偷偷告诉你小姐姐的听歌喜好相关推荐

  1. 用Python偷偷告诉你国庆8亿人都去哪儿浪?

    " 祖国 70 周年的华诞一天天临近,各行各业都在为祖国母亲庆祝生日.作为一个 IT 人,也想贡献一份绵薄之力. 图片来自 Pexels 据文化和旅游部消息称,预计 2019 年国庆旅游人次 ...

  2. 利用Python做一个漂亮小姐姐词云跳舞视频

    最近不少小伙伴在学 Python,想找个好玩的练手项目. 那今天分享一个,简单,适合新手的 Python 小项目. 以下是具体项目: 本文将以哔哩哔哩–乘风破浪视频为例,you-get下载视频. 同时 ...

  3. 使用python代码表白_用Python代码花式表白小姐姐,她会不会生气啊

    对于程序员来说,情人节表白当然少不了代码打辅助.小笨聪这次给大家带来两份不同的表白代码(Python版),原理都很基础,第一份主要用到pygame库,第二份主要用到turtle库[附:小笨聪的运行环境 ...

  4. python实战|爬取1000位小姐姐私房照制作照片墙,刷新你三观的颜值!

    今天给大家介绍python如何爬取虎牙小姐姐并制作心形照片墙, 有兴趣的小伙伴们一起来看看吧! 点击进去 卧槽,这颜值..... i了i了 需求分析 我们的目标有5个,分别是小姐姐的 房间名称.封面照 ...

  5. Python爬虫:头条小姐姐们都来给你拜年啦!

    觉得上面的小姐姐漂亮的,可以举个爪子. 今天就来教大家来爬取头条上的美女. 但是,不要着急,在学爬虫之前,大家需要先学会分析Ajax请求. 前言 有时候我们会用requests抓取页面的时候,得到的结 ...

  6. python手绘效果图_用Python做个海量小姐姐素描图

    素描作为一种近乎完美的表现手法有其独特的魅力,随着数字技术的发展,素描早已不再是专业绘画师的专利,今天这篇文章就来讲一讲如何使用python批量获取小姐姐素描画像.文章共分两部分: 第一部分介绍两种使 ...

  7. 三分钟教会你用Python爬取心仪小姐姐图片

    使用Python爬取小姐姐图片 首先上网站链接 唯美女生 爬取图片主要分为一下几步: 1.打开一个你喜欢的小姐姐的网站 E.g xiaojiejie web 2.下载并安装python环境 pytho ...

  8. python表白程序-用Python做一个表白小姐姐的程序

    今天来填昨天自己给自己挖的那个坑,用Python实现那个曾经抖音上很火的.表白小姐姐程序,自己写了一个简单版本的,基本功能都可以实现,撩小姐姐怕是有点困难,但单身狗们还是可以自娱自乐一下的. 首先讲一 ...

  9. 用 Python 做了一个小姐姐跳舞的词云视频

    关注公众号:[小张Python],为你准备了 50+ 本Python 精品电子书籍 与 50G + 优质视频学习资料,后台回复关键字:1024 即可获取:如果对博文内容有什么疑问,公号后台添加作者[个 ...

最新文章

  1. VM8不能安装64位操作系统原因解析
  2. python类加载机制_PHP面向对象自动加载机制原理与用法分析
  3. 苹果iOS 10.3.1修复博通Wi-Fi芯片重大安全漏洞
  4. 华为网络设备上的常用安全技术(一)
  5. 【HNOI2013】数列
  6. python 中main函数总结
  7. AzCopy – 上传/下载 Windows Azure Blob 文件
  8. 复练-关于面试的科技树-V1004-求职面试的阶段和策略
  9. oracle中between
  10. c语言程序设计19,C语言程序设计19.pdf
  11. SQL2008数据类型
  12. python css_Python-CSS整理
  13. System学习笔记003---Windows把内存变成快速虚拟硬盘
  14. js阻止浏览器默认事件
  15. 利用shell脚本远程磁盘分区
  16. java8新特性——Stream流
  17. Perl语言的常用符号
  18. 姜启源 数学建模 第十章 软件开发人员的薪金Matlab代码
  19. Annotation释疑
  20. MATLAB中字体大小颜色设置

热门文章

  1. flutter 加.then方法
  2. xml解析新浪新闻_客户端_下拉刷新
  3. 5/21 周六_习惯累积沉淀_新浪博客
  4. 【哈工大版】动态ReLU:自适应参数化ReLU及Keras代码(调参记录11)
  5. c语言同步控制程序设计,C语言程序设计之上机指导及同步训练
  6. 一个大龄女程序猿的烦恼
  7. 洛谷P1785 漂亮的绝杀
  8. php给图片添加水印方法汇总(包括文字水印和图片水印)
  9. 世界史上最成功的6大王朝
  10. TutorABC践行教育公益 荣膺姚基金颁发“爱心合作伙伴奖”