"""
分析需求
1,确定目标网址
2,获取目标网址的所有数据
3,筛选我们想要的数据
4,下载歌曲保存
"""
import os import requests # 模拟浏览器浏览网页 第三方库 工具包 singer = input("请输入歌手姓名:")
num = input("请输入你想下载的页数:")
# 目标网址
url = f"https://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={singer}&pn={num}&rn=30&httpsStatus=1&reqId=0e333970-f90a-11ec-a02d-9b5117697bc1"
print(url)
# 伪装一下 请求头
headers = {
# 代理信息 模拟浏览器
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36",
# 令牌 钥匙
"csrf": "0G1J21RT96FN",
# 打开哪个门
"Cookie": "kw_token=0G1J21RT96FN",
# 域名
"Host": "www.kuwo.cn",
# 防盗链 从哪里来的
"Referer": f"https://www.kuwo.cn/search/list?key=%E5%91%A8%E6%9D%B0%E4%BC%A6"
}
# 模拟浏览器发送请求
response = requests.get(url, headers=headers).json()
print(response)
data = response["data"]["list"] # print(data)
for i in data:
rid = i["rid"]
name = i["name"]
print(rid, name)
# 新目标网址
# new_url = f'https://www.kuwo.cn/api/v1/www/music/playUrl?mid={rid}&type=music&httpsStatus=1&reqId=5085a771-f902-11ec-8529-cdb133e96ad8'
new_url = f'https://apis.jxcxin.cn/api/kuwo?id={rid}&type=json'
# new_url = "https://kuwo.cn/url?format=mp3&rid=" + str(rid) + "&response=url&type=convert_url3&br=128kmp3&from=web&t=1604320123221&httpsStatus=1&reqId=f202c851-1d06-11eb-91ba-83cb90e3e81e"
# #请求新网址
res = requests.get(new_url).json()
# print(res)
# print(res["url"])
# 下载歌曲 最后一次请求
r = requests.get(res["url"]).content
# 路径
path = os.path.join(os.path.expanduser("~"), 'Desktop') + os.sep + name + ".mp3"
# 保存 文件操作 以二进制写入
with open(path, "wb") as f:
f.write(r)
print("正在下载", name)

获取VIP歌曲的更多相关文章

  1. songtaste网站歌曲真实URL获取

    个人挺喜欢songtaste网站的歌曲的,下载方法也层出不穷,可是作为程序员如果不知其中原理的方法真是羞愧.首先简单点的方法当然有google插件这样的嗅探器了,不过这种工具的原理还不是很了解.今天先 ...

  2. 教你PC端网易云音乐自定义代理,VIP免费听歌!

    今天分享一份福利吧,使用网易云音乐自定义代理实现免费听和下载VIP.极高音质.付费的歌曲,这里主要针对PC端电脑版的,需要自己写脚本运行. 01 安装node.js Node.js是一个让 JavaS ...

  3. Jsonp调用网易云音乐API搜索播放歌曲

    效果如下图: 基本就是正常的文件播放,暂停,停止,设置循环,随机播放,加速,减速,上一曲,下一曲,再多个选择本地文件加入到播放列表的功能.然后想着给加个能搜索网络歌曲并且播放的功能,今天研究了一下,成 ...

  4. Android多媒体分析-通过MediaStore获取Audio信息

    public void getAlldata() { ContentResolver cr = getApplication().getContentResolver(); if (cr == nul ...

  5. 游戏中VIP会员模块的简单实现

    哈哈  今天周末有时间,再整理一篇博文上来,虽然已经不做游戏老长时间了,但还是要把以前做过的东西总结一下,借此可以回顾以前的东西,也可以分享给大家. 今天说一下游戏中VIP会员模块的实现思路.每款游戏 ...

  6. .NET小项目之MyKtv(歌曲播放功能实现)

    在KTV点歌系统中我们根据需求获取到歌手的歌曲信息,点击歌手的歌曲将其添加到一点歌曲列表中看似简单的一个操作其实涉及很多内容,这也是写这篇Blog的目的—分析歌曲播放的原理. 原理分析 我们应该清楚, ...

  7. python爬取网易云周杰伦所有专辑,歌曲,评论,并完成可视化分析

    ---恢复内容开始--- 去年在网络上有一篇文章特别有名:我分析42万字的歌词,为搞清楚民谣歌手们在唱些什么.这篇文章的作者是我大学的室友,随后网络上出现了各种以为爬取了XXX,发现了XXX为名的文章 ...

  8. Redis高可用架构—Keepalive+VIP

    最近整理一下Redis高可用架构的文档,也准备分享出来,虽然这些架构也不是很复杂.Redis的高可用方案目前主要尝试过5种方式,其中2种方式已经在线上使用. 1)Redis Master-Slave ...

  9. 【音乐App】—— Vue-music 项目学习笔记:歌曲列表组件开发

    前言:以下内容均为学习慕课网高级实战课程的实践爬坑笔记. 项目github地址:https://github.com/66Web/ljq_vue_music,欢迎Star. 当前歌曲播放列表 添加歌曲 ...

  10. JS高级——面向对象方式解决歌曲管理问题

    需要注意的问题: 1.其他模块若是使用构造函数MP3创建对象,唯一不同的就是他们传入的音乐库是不一样的,所以构造函数中存在一个songList属性,其他一样的就被添加到了构造函数的原型对象之中 2.原 ...

随机推荐

  1. Docker | 数据持久化与数据共享

    数据持久化(安装MySQL) 参考另一篇Docker安装mysql: https://www.cnblogs.com/all-smile/p/16778376.html MySQL的数据持久化问题 # ...

  2. 01-MySQL8主从详解

    主从原理 master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中:slave服务器会在一定时间间隔内对master二进制日志进行探测其是 ...

  3. How to install the Package Controller

    How to install the Package Controller? https://packagecontrol.io/installation INSTALLATION Use one o ...

  4. Mybatis-Plus多表联查

    表格结构: CREATE TABLE `ssmpdemo`.`person_test` ( `id` varchar(32) CHARACTER SET utf8 COLLATE utf8_gener ...

  5. Codeforces Round #832 (Div. 2) A-D

    比赛链接 A 题解 知识点:贪心. 我们考虑把正数和负数分开放,显然把负数和正数放在一起的结果不会更优. 时间复杂度 \(O(n)\) 空间复杂度 \(O(1)\) 代码 #include <b ...

  6. 畅联新接入物联设备的情况:丰宝 智慧消防领域的 NB水压一体机、智能消防栓、NB液位一体机

    我看了一下,似乎三种完全不同的协议额...应该是电信AEP平台,由双美接入. ------------------------------------------------------------- ...

  7. 如何通过Java导出带格式的 Excel 数据到 Word 表格

    在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件.但是如果表格比较长,内容就会存在一定程度的丢失,无法 ...

  8. 2022春每日一题:Day 33

    题目:[USACO 6.1.3] Cow XOR 没找到这题具体网址,这个题就是求最大异或区间(总长度尽量小,右端点尽量大) 嗯很显然一个[l,r]的异或和=s[r]s[l-1],那么现在有了优秀的n ...

  9. mysql管理工具mysqladmin的使用

    1. 初始化密码 mysqladmin -uroot -p'password' password 'new-password' [root@controller3 ~]# yum -y install ...

  10. 图文详解在VMware Workstation 16 PRO虚拟机上安装Rocky 8.6 linux系统

    一.安装VMware Workstation虚拟机 下载VMware Workstation 16 PRO虚拟机 https://www.vmware.com/cn/products/workstat ...