Python怎样实现免费音乐下载器
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天就跟大家聊聊有关Python怎样实现免费音乐下载器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。正文1)思路进入某音乐主页输入任意歌手,比
千家信息网最后更新 2025年11月07日Python怎样实现免费音乐下载器
今天就跟大家聊聊有关Python怎样实现免费音乐下载器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
正文
1)思路
进入某音乐主页输入任意歌手,比如李XX为列。
音乐从哪里来?---网站的服务器里
怎么从网址里得到音乐?---向网站发起网络请求
最后用tkinter做成一个界面下载框即可
2)环境
本文用到的环境如下:Python3、Pycharm,requests、tkinter模块。
模块安装:pip install + 模块名 环境有问题可以直接找我解答。(安装包、视频、激活码都有)
3)代码演示
3.1 打开审查元素F12
找到头文件地址:
headers = { 'Referer': 'https://y.qq.com/portal/search.html', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/77.0.3865.90 Safari/537.36 '}3.2 附完整项目
# -*- coding: utf-8 -*-from tkinter import *import requestsimport jsonimport os headers = { 'Referer': 'https://y.qq.com/portal/search.html', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ' 'Chrome/77.0.3865.90 Safari/537.36 '} def downlaod_song(): music_info_list = [] name = entry.get() page = '1' num = '10' url = f'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p={page}&n={num}&w={name}' response = requests.get(url).text # 将response切分成json格式 类似字典 但是现在还是字符串 music_json = response[9:-1] music_data = json.loads(music_json) music_list = music_data['data']['song']['list'] for music in music_list: music_name = music['songname'] # 歌曲的名字 singer_name = music['singer'][0]['name'] # 歌手的名字 songmid = music['songmid'] media_mid = music['media_mid'] music_info_list.append((music_name, singer_name, songmid, media_mid)) # 获取vkey music_data = [] for music in music_info_list: music_name = music[0] singer_name = music[1] songmid = music[2] url = 'https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req":{"module":"CDN.SrfCdnDispatchServer","method":"GetCdnDispatch","param":{"guid":"8846039534","calltype":0,"userip":""}},"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","param":{"guid":"8846039534","songmid":["%s"],"songtype":[0],"uin":"1152921504784213523","loginflag":1,"platform":"20"}},"comm":{"uin":"1152921504784213523","format":"json","ct":24,"cv":0}}' % songmid response = requests.get(url).json() # 如果你获取的数据 是 {} .json() 他会直接帮我们转换成字典 purl = response['req_0']['data']['midurlinfo'][0]['purl'] full_media_url = 'http://dl.stream.qqmusic.qq.com/' + purl music_data.append( { 'music_name': music_name, 'singer_name': singer_name, 'full_media_url': full_media_url } ) if not os.path.exists('歌曲下载'): os.mkdir('歌曲下载') for music in music_data: music_name = music['music_name'] singer_name = music['singer_name'] full_url = music['full_media_url'] music_response = requests.get(full_url, headers=headers).content # 获取到二进制数据 with open('歌曲下载/%s-%s.mp3' % (music_name, singer_name), 'wb')as fp: fp.write(music_response) # 添加数据到列表框的最后 text.insert(END, '正在下载:%s' % music_name) # 文本框向下滚动 text.see(END) # 更新(不更新就一直卡在那,显示同样的内容) text.update() # 1.创建窗口root = Tk()# 2.窗口标题root.title('QQ音乐')# 3.窗口大小以及显示位置,中间是小写的xroot.geometry('550x400+550+230')# 窗口显示位置# 4.标签控件lable = Label(root, text='请输入需要下载的歌手或歌曲:', font=('微软雅黑', 10))lable.grid(row=0, column=0)# 5.输入控件entry = Entry(root, font=('微软雅黑', 25))entry.grid(row=0, column=1)# 6.列表框控件text = Listbox(root, font=('微软雅黑', 16), width=45, height=10)# # columnspan组件所跨月的列数text.grid(row=1, columnspan=2)# 7.按钮控件button = Button(root, text='开始下载', width=10, font=('微软雅黑', 10), command=downlaod_song)button.grid(row=2, column=0, sticky=W)button1 = Button(root, text='退出', width=10, font=('微软雅黑', 10), command=root.quit)button1.grid(row=2, column=1, sticky=E)# 消息循环,显示窗口root.mainloop()4)效果展示
以李XX为例子下载的歌曲:

想下载什么下载什么哦~

看完上述内容,你们对Python怎样实现免费音乐下载器有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
音乐
歌曲
微软
内容
控件
数据
模块
歌手
歌曲下载
环境
输入
音乐下载
位置
名字
字典
网站
更新
二进制
代码
例子
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发标的
网络安全边界感知
当前推动数据库发展的驱动力是
网络安全意识单薄的检查
上海硬通网络技术有限公司
叛乱2国内服务器
显示屏软件开发公司
软件开发接单平台什么鸟
襄阳网络安全现状
企业微信服务器怎么换
软件开发单词大全
数据库的速度优化
网络安全培训商业模式
开展网络安全技术应用试点示范工
小马软件开发有限公司
魔兽怀旧服世界联盟服务器
方舟生存进化服务器代表什么
字位数据库
服务器 心跳监控
武汉理工大学企业数据库应用
试论述数据库的二级映像技术
服务器只开放80端口怎么映射
糖依果网络技术工作室
检察 网络安全态势
笔记本电脑有服务器吗
软件开发单词大全
关于数据库的实验报告
网络安全管理热门认证
广州日鑫互联网科技有限公司
当代学生对于网络安全