千家信息网

Python怎样实现免费音乐下载器

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,今天就跟大家聊聊有关Python怎样实现免费音乐下载器,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。正文1)思路进入某音乐主页输入任意歌手,比
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 金融科技还是互联网 狮子座互联网科技培训 西藏七维空间互联网科技有限公司 成都互联网科技公司100强 昭通云南众福互联网科技有限公司 互联网系的金融科技公司 未来五年的互联网科技 佛山市拉法互联网科技有限公司 区块链结合互联网科技 智帮互联网科技公司最近动向 山东大美朱楼互联网科技有限公司 福州德业互联网科技 互联网科技职业技能培训学校 米泉互联网科技专业怎么样 广州三三互联网科技有限公司 互联网科技的前景 深圳互联网科技园地址 科技发展第三阶段互联网时代 武汉亿视互联网科技有限公司 中国互联网科技股 科技创新与互联网经济 唐信互联网科技 互联网科技排名 壕鑫互联网络科技 苏州五指互联网络科技有限 恒生互联网科技指数跳水 互联网科技大会大佬 平安好医生打造互联网科技医疗 东风日产互联网科技公司叫什么
0