千家信息网

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安全错误 数据库的锁怎样保障安全 科技互联网龙头 美国互联网科技巨头监管 互联网 卓越科技 互联网科技公司怎么样 凡科互联网科技 国外互联网科技网站 互联网养老 桔豆科技 华中科技有哪些互联网大佬 互联网科技公司的市场部门 老年人脱离互联网科技的作文 欧洲十大科技互联网公司 北京华百购互联网科技有限公司 互联网科技革命什么开始 互联网科技大奖都有哪些公司 科技赋能视角下互联网保险发展 工业互联网科技成果转化 易企秀互联网科技是做什么的 福州德业互联网科技 互联网科技收购价值 互联网时代高科技布局 亿人帮互联网科技有限公司 科技企业和互联网企业 互联网公司 科技公司 互联网的科技创新 无锡工业互联网科技有限公司 小米互联网科技园入驻 广州互联网高科技取餐柜 云鲸互联网络科技有限公司 江苏互联网智能科技产品出厂价 利用互联网等科技手段
0