python/nfrom tkinter import */nimport requests/nimport jsonpath/nimport os/nfrom urllib.request import urlretrieve/n/n/ndef download_song(url, title, author):/n '/''/n 下载歌曲/n :param url: 歌曲链接/n :param title: 歌曲名称/n :param author: 歌曲作者/n '/''/n # 创建文件夹/n os.makedirs('music', exist_ok=True)/n path = 'music/{}.mp3'.format(title)/n text.insert(END, '歌曲:{0}-{1},正在下载...'.format(title, author))/n # 文本框滑动/n text.see(END)/n # 更新/n text.update()/n # 下载/n urlretrieve(url, path)/n text.insert(END, '下载完毕,{0}-{1},请试听'.format(title, author))/n # 文本框滑动/n text.see(END)/n # 更新/n text.update()/n/n/ndef search_music():/n '/''/n 搜索歌曲名称/n '/''/n name = entry.get()/n platform = var.get()/n/n url = 'https://music.liuzhijin.cn/'/n headers = {/n '/'user-agent/'': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',/n '/'x-requested-with/'': 'XMLHttpRequest',/n }/n data = {/n '/'input/'': name,/n '/'filter/'': 'name',/n '/'type/'': platform,/n '/'page/'': 1,/n }/n res = requests.post(url=url, data=data, headers=headers)/n json_text = res.json()/n/n title = jsonpath.jsonpath(json_text, '$..title')/n author = jsonpath.jsonpath(json_text, '$..author')/n url = jsonpath.jsonpath(json_text, '$..url')/n /n if not url:/n text.insert(END, '未找到该歌曲,请重新输入!')/n # 文本框滑动/n text.see(END)/n # 更新/n text.update()/n return/n /n download_song(url[0], title[0], author[0])/n/n/n# 1.用户界面/n# 创建画板/nroot = Tk()/n# 设置窗口标题/nroot.title('全网音乐下载器')/n# 设置窗口大小以及出现的位置/nroot.geometry('560x450+400+200')/n# 标签组件/nlabel = Label(root, text='请输入下载的歌曲:', font=('楷体', 20))/n# 定位与布局/nlabel.grid(row=0)/n# 输入框组件/nentry = Entry(root, font=('宋体', 20))/nentry.grid(row=0, column=1)/n# 单选按钮/nvar = StringVar()/nr1 = Radiobutton(root, text='网易云', variable=var, value='netease')/nr1.grid(row=1, column=0)/nr2 = Radiobutton(root, text='QQ', variable=var, value='qq')/nr2.grid(row=1, column=1)/n# 列表框/ntext = Listbox(root, font=('楷体', 16), width=50, height=15)/ntext.grid(row=2, columnspan=2)/n# 下载按钮/nbutton1 = Button(root, text='开始下载', font=('楷体', 15), command=search_music)/nbutton1.grid(row=3, column=0)/nbutton2 = Button(root, text='退出程序', font=('楷体', 15), command=root.quit)/nbutton2.grid(row=3, column=1)/n# 显示界面/nroot.mainloop()/n/n/n/n修改说明:/n1. 修改函数名为download_song,更准确地表达函数的作用。/n2. 将变量名platfrom改为platform。/n3. 增加异常处理,当未找到歌曲时给出错误提示。/n4. 修改了代码缩进。/n5. 增加了注释。

全网音乐下载器:一键下载网易云、QQ 音乐

原文地址: https://www.cveoy.top/t/topic/oG9C 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录