如何批量获取指定歌手的音乐

liftword2周前 (06-15)技术文章4

#头条创作挑战赛#

本文使用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:以上是参考尚学堂项目案例学习编写,仅供学习使用,严禁用于商业用途或破坏性用途。祝愿大家听歌无忧~~~

相关文章

一起用python做个炫酷音乐播放器,想听啥随便搜

前言前段时间写的Python自制一款炫酷音乐播放器,有不少小伙伴私信我,对播放器提了不少改进建议,让我完善播放器的功能。今天音乐播放器2.0版本完成了,大家一起来看看是如何用python自制一款炫酷的...

零基础小白,如何利用DeepSeek自动编程,2小时完成音乐播放器?

自从DeepSeek横空出世,大家都被它的强大功能震惊了,于是满世界的教程来了,但都是什么生成PPT、总结、文案啥的,烂大街了!今天,我就教大家,怎么用DeepSeek的强大能力,2小时完成一个完整的...

利用python实现音乐自由

上期我们讲到了如何利用python实现小说自由,既然有了小说那边听音乐,边看小说是不是会更加快乐呢。这期我们就来讲讲如何利用python实现音乐自由。首先我们来打开某音乐网站来分析下源码点开一个<...

利用python爬虫爬取网站音乐

最近我想在网站上下载几首音乐放到我的u盘里听,但是上网上一找,各大音乐网站下载歌曲(尤其是好听的歌曲)都需要vip。对于像我这样的穷人来说,肯定是不会花几十块钱去下载几首音乐啦,而且作为程序员,充钱去...

Python编程:爬取歌曲案例

恭祝大家春节愉快!请点赞,转发加关注和私信,获取源代码!在介绍爬取音频数据案例的课程中,我们大概讲解了爬虫应该知道和应该会一些知识。在2021年春节长假期间,宅家或外出旅行,使用Python程序,能爬...

【原创】音乐播放器系列-1:Python Pygame(附完整源码)

△ 内容:1 音乐播放器图片和操作图展示。2 代码讲解,提供代码可读性和锻炼python编程能力,是学习python的一个生动的好项目。3 附完整源码,个人原创,无偿奉献出来。4 适合人群:编程爱好者...