Python自制音乐下载器,无需切换平台无需氪金!
兄弟们,我来了😎
平时我们想下一首歌,因为资源限制,需要在W平台、Q平台、K平台来回切换,这样多累,那我就直接做了一个聚合的音乐下载器,想要什么歌,直接输入名字分分钟就下载到位了😍
那我下首分手快乐试试🤣
都保存在音乐文件夹了
环境配置
# 解释器 python3.6 # 编辑器 pycharm专业版
环境不会配置的小伙伴可以看我置顶合集里面有
导入模块
import os from urllib.request import urlretrieve from tkinter import * import requests # pip 安装 import jsonpath # json数据的解析工具
兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。 那么对于这些大兄弟们,我准备了大量的免费视频教程,PDF电子书籍,以及视频源的源代码! 还会有大佬解答! 都在这个群里了 924040232 欢迎加入,一起讨论 一起学习!
先整一手好看的界面,我这个比较简单,大家可以改的好看一点。
- 创建画布
root = Tk()
- 设置标题
root.title('音乐下载器')
- 设置窗口大小以及出现位置
root.geometry('560x450+400+200')
- 标签组件
label = Label(root, text='请输入下载歌曲:', font=('华文行楷', 20))
- 定位、布局
label.grid()
- 输入框组件
entry = Entry(root, font=('隶书', 20)) entry.grid(row=0, column=1)
- 单选按钮
var = StringVar() r1 = Radiobutton(root, text='网抑云', variable=var, value='netease') r1.grid(row=1, column=0) r2 = Radiobutton(root, text='秋秋音乐', variable=var, value='qq') r2.grid(row=1, column=1)
- 列表框
text = Listbox(root, font=('隶书', 16), width=50, heigh=15) text.grid(row=2, columnspan=2)
- 下载按钮
button1 = Button(root, text='开始下载', font=('隶书', 15), command=get_music_name) button1.grid(row=3, column=0)
- 退出按钮
button2 = Button(root, text='退出程序', font=('隶书', 15), command=root.quit) button2.grid(row=3, column=1)
基本就是爬虫的一些操作
创建文件夹
os.makedirs("音乐", exist_ok=True) path = "音乐\{}.mp3".format(title) text.insert(END, '歌曲:{},正在下载...'.format(title))
文本框滚动
text.see(END)
更新
text.update()
下载
urlretrieve(url, path) text.insert(END, '下载完毕:{},请试听'.format(title))
文本框滚动
text.see(END)
更新
text.update()
搜索歌曲
def get_music_name(): name = entry.get() platfrom = var.get() headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36', 'x-requested-with': 'XMLHttpRequest' # 判断请求是异步还是同步 } data = { 'input': name, 'filter': 'name', 'type': platfrom, 'page': 1, } url = 'https://music.liuzhijin.cn/' resp = requests.post(url=url, data=data, headers=headers) json_text = resp.json() title = jsonpath.jsonpath(json_text, '$..title')[0] author = jsonpath.jsonpath(json_text, "$..author")[0] url = jsonpath.jsonpath(json_text, "$..url")[0]
下载
song_load(url, title)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!