网站首页 > 开源技术 正文
本文使用python批量获取指定歌手的音乐,并下载到本地。
1. 分析网页
登录酷狗音乐,输入想搜索的歌手的音乐(例如本文的林俊杰),页面结果如下
1.1 分析对应的url
可见,获取歌曲列表的url
list_murl='https://complexsearch.kugou.com/v2/search/song?callback=callback123&srcappid=2919&clientver=1000&clienttime=1669552869004&mid=6fb3e7f78cfb475ec8353739280ca9e0&uuid=6fb3e7f78cfb475ec8353739280ca9e0&dfid=4XSsT32VYg1y0xqt0R3rCVdv&keyword=林俊杰&page=1&pagesize=30&bitrate=0&isfuzzy=0&inputtype=0&platform=WebFilter&userid=0&iscorrection=1&privilege_filter=0&filter=10&token=&appid=1014&signature=f09af4c2d8fd21a095c14300772703ce'
对应的歌曲数据列表
1.2 选择对应歌曲
选择一首歌曲(例如《背对背拥抱》),找到对应的歌曲的url
其中hash值即之前list中的值,由此可将其作为变量传入
for i, s in enumerate(song_list):
print(f'{i+1} . {s.get("SongName")}---{s.get("FileHash")}--{s.get("AlbumID")}')
info_url = f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash={s.get("FileHash")}&album_id={s.get("AlbumID")}'
# print(info_url)
2. 完整案例代码
2.1 完整案例代码如下
import requests
import json
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36',
'Cookie':'kg_mid=6fb3e7f78cfb475ec8353739280ca9e0; kg_dfid=4XSsT32VYg1y0xqt0R3rCVdv; kg_dfid_collect=d41d8cd98f00b204e9800998ecf8427e; Hm_lvt_aedee6983d4cfc62f509129360d6bb3d=1669429609,1669430050,1669474232; kg_mid_temp=6fb3e7f78cfb475ec8353739280ca9e0; Hm_lpvt_aedee6983d4cfc62f509129360d6bb3d=1669480245'
}
list_murl='https://complexsearch.kugou.com/v2/search/song?callback=callback123&srcappid=2919&clientver=1000&clienttime=1669552869004&mid=6fb3e7f78cfb475ec8353739280ca9e0&uuid=6fb3e7f78cfb475ec8353739280ca9e0&dfid=4XSsT32VYg1y0xqt0R3rCVdv&keyword=林俊杰&page=1&pagesize=30&bitrate=0&isfuzzy=0&inputtype=0&platform=WebFilter&userid=0&iscorrection=1&privilege_filter=0&filter=10&token=&appid=1014&signature=f09af4c2d8fd21a095c14300772703ce'
m_res = requests.get(list_murl, headers=headers)
#print(m_res.text)
song_list = json.loads(m_res.text[12:-2])['data']['lists']
print(song_list)
for i, s in enumerate(song_list):
print(f'{i+1} . {s.get("SongName")}---{s.get("FileHash")}--{s.get("AlbumID")}')
info_url = f'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&hash={s.get("FileHash")}&album_id={s.get("AlbumID")}'
# print(info_url)
f_name = f'{i+1}. {s.get("SongName")}.mp3'
m_res2 = requests.get(info_url, headers=headers)
print(f'{i+1} .{m_res2.json()["data"]["play_url"]}')
m_url = m_res2.json()['data']['play_url']
# print(m_url)
if m_url != '':
m_res3 = requests.get(m_url, headers=headers)
with open(f_name, 'wb') as f:
f.write(m_res3.content)
2.2 运行结果
运行过程中会将对应歌曲的url打印出来
3. ChatGPT方案
由此可见,ChatGPT 可以在我们写代码时提供一些参考的方法。
PS:以上是参考尚学堂项目案例学习编写,仅供学习使用,严禁用于商业用途或破坏性用途。祝愿大家听歌无忧~~~
- 上一篇: 实战录 | 服务器性能监控—ELK实践
- 下一篇: 利旧淘汰笔记本电脑作为家庭服务器
猜你喜欢
- 2025-01-17 实战录 | 服务器性能监控—ELK实践
- 2025-01-17 【夜莺监控】从日志提取指标的瑞士军刀
- 2024-08-08 PowerBuilder软件使用过程中常见问题处理
- 2024-08-08 16个概念带你入门 Kubernetes(kubernetes的功能)
- 2024-08-08 软件测试学习笔记丨Grafana安装(grafana安装与配置)
- 2024-08-08 MQTT 消息代理 VerneMQ(mqtt推送原理)
- 2024-08-08 比特链NFT,不仅怀旧玩游戏,还能零撸OG代币!
- 2024-08-08 Linux下网络流量常用那些监控工具
- 2024-08-08 Java中VO、DO、PO、DTO之间的模型如何转换?
- 2024-08-08 分布式日志管理系统:从ELK到EFK(分布式管理软件)
你 发表评论:
欢迎- 最近发表
-
- 6月游戏推荐(二)(6月份新出的游戏)
- 37【源码】数据可视化:基于 Echarts + Python 动态实时大屏
- Kubernetes Kube-Proxy 组件 IPVS 模式工作原理及常用故障排查
- 《茶余饭后顶级英文歌曲精选》(茶余饭后的经典句子)
- rainx和MediaTek携手推出101产品生态,为5G FWA提供创新
- KAPITAL 推出蓝染风格 Aloha Shirt 系列
- 欧美经典怀旧歌曲Free loop-管不住的音符
- Mac 下php5.3-7.0的二进制包 ── PHP-OS
- 如何把一个Python应用程序装进Docker
- 为何推荐 JsonTree.js 做 JSON 可视化?
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)