直接上源码:

# 导入模块
from tkinter import *
import requests
import jsonpath
import os
from urllib.request import urlretrieve# 2.功能实现
"""1.url2.模拟浏览器请求3.解析网页源代码4.保存数据
"""
def song_download(url,title,author):# 创建文件夹os.makedirs("music",exist_ok=True)path = 'music\{}.mp3'.format(title)text.insert(END,'歌曲:{0}-{1},正在下载...'.format(title,author))# 文本框滑动text.see(END)# 更新text.update()# 下载urlretrieve(url,path)text.insert(END,'下载完毕,{0}-{1},请试听'.format(title,author))# 文本框滑动text.see(END)# 更新text.update()def get_music_name():"""搜索歌曲名称:return:"""name = entry.get()platfrom = var.get()# name = '白月光与朱砂痣'url = 'https://music.liuzhijin.cn/'headers = {"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",# 判断请求是异步还是同步"x-requested-with":"XMLHttpRequest",}param = {"input":name,"filter":"name","type":platfrom,"page": 1,}res = requests.post(url=url,data=param,headers=headers)json_text = res.json()title = jsonpath.jsonpath(json_text,'$..title')author = jsonpath.jsonpath(json_text,'$..author')url = jsonpath.jsonpath(json_text, '$..url')print(title,author,url)song_download(url[0],title[0],author[0])# 1.用户界面
# 创建画板
root = Tk()
# 设置窗口标题
root.title('全网音乐下载器')
# 设置窗口大小以及出现的位置
root.geometry('560x450+400+200')
# 标签组件
label = Label(root,text="请输入下载的歌曲:",font=('楷体',20))
# 定位与布局
label.grid(row=0)
# 输入框组件
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='QQ',variable=var,value='qq')
r2.grid(row=1,column=1)
# 列表框
text = Listbox(root,font=('楷体',16),width=50,height=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)
# 显示界面
root.mainloop()# 如何将.py代码打包成.exe文件

Tkinter写一个音乐下载器相关推荐

  1. 用Tkinter包装一个音乐下载爬虫

    用Tkinter包装一个音乐下载爬虫 前言 一.模块 核心模块: 辅助模块: 路人模块: 二.程序 1.思路区块介绍 1)header 部分 2)article 部分 3)footer 部分 2.源代 ...

  2. Python3爬虫——用selenium获取歌曲id,做一个音乐下载器

    我们之前已经学习了selenium的简单实用,现在就来实战下,我们通过selenium获取歌曲的id,然后通过网易云音乐的外链地址来下载音乐,做一个音乐下载器(此项目仅供教学使用),下面我们先来看一下 ...

  3. python tkinter下载器_下载小说还要去找网站?Python使用tkinter打造一个小说下载器...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  4. python 小说下载工具_使用tkinter打造一个小说下载器,想看什么小说,就下什么...

    前言 今天教大家用户Python GUI编程--tkinter 打造一个小说下载器,想看什么小说,就下载什么小说 先看下效果图 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkint ...

  5. 用vue简单写一个音乐播放器

    简单地写一个功能比较全的音乐播放器 前言 因为音乐播放器是一个很可能在项目遇到的东西,早写总比晚写好.趁没事先写个. 思路 一个音乐播放器该有的东西: 封面,歌名,专辑,作者 控制器(上一首,下一首, ...

  6. 写一个音乐播放器的微信小程序

    要创建一个音乐播放器的微信小程序,您需要熟悉微信小程序的开发环境和语言(如 JavaScript 和 WXML/WXSS). 具体来说,您需要做以下几件事: 设计音乐播放器的用户界面,并使用 WXML ...

  7. 利用python自己动手制作一个音乐下载器,想听什么歌自己下就好了。

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 一.前言 之前大家有没有过从电脑上下载歌曲MP3文件放到手机内存卡的经历,随着时代 ...

  8. 用tkinter写出you-get下载器界面,并用pyinstaller打包成exe文件

    写在前面:本文为笔者最早于 2019-05-11 23:15 以"@拼命三郎"的身份发表于博客园 本文为原创文章,转载请标明出处 一.you-get介绍 you-get是一个基于 ...

  9. Python:用tkinter制做一个音乐下载小软件

    人生苦短,我用Python 平常我们下载的歌曲,都是各种妖魔鬼怪的格式横行,想下载下来用一下都不行,还只能在它的播放器内听,这谁受得了~ 学Python是用来干嘛的? 当然是解决问题咯~ 于是我直接写 ...

最新文章

  1. 使用wsimport命令创建Web Service客户端
  2. P2831 [NOIP2016 提高组] 愤怒的小鸟 状压dp
  3. 【开发软件】推荐一款MAC OS X 下php集成开发环境mamp
  4. centos 安装mysql 5.7.9_CentOS 6.6下RPM方式安装MySQL 5.7.9
  5. object-c中对文件和url操作
  6. nodejs实践录:测试连接性及邮件通知
  7. Intergate flot with Angular js ——Angular 图形报表
  8. 快手批量下载-支持作者所有视频无水印带标题
  9. 一般系统论的方法 读书笔记
  10. 菜鸟版JAVA设计模式—从笔记本电源线看适配器模式
  11. java声音变音代码实现_大话音频变声原理 附简单示例代码
  12. 重新定义公司-谷歌是如何运营的 读书笔记+读后感
  13. SVM要点总结(一)
  14. LDAP简述及统一认证说明
  15. 数据类型(数据类型简介、数据类型的分类(简单数据类型,获取变量数据类型,数据类型转换))
  16. IB学生喜欢申请哪些英国院校?
  17. JS绑定事件三种方式
  18. 【.Net码农】c#打印机设置,取得打印机列表及相应打印机的所有纸张格式
  19. canopen协议的介绍之NMT节点管理;
  20. 何为音视频流媒体,音视频基础概念(建议收藏)

热门文章

  1. c语言:求π的近似值
  2. 慕课嵌入式开发及应用(第二章.嵌入式硬件构件与底层驱动构件基本规范)
  3. 笔记本显卡cpu 功耗测试软件,Alienware外星人X系列PK比51M系列性能,谁更强?应该选择买谁?笔记本显卡和CPU功耗如何?...
  4. php where 时间条件,thinkphp5日期时间查询比较和whereTime使用方法
  5. [嵌入式框架][nrf51822][SDK12.3] BLE分层设计 NUS 透传数据队列发送,提升带宽利用率
  6. BOOL类型数组初始化
  7. docker——Ubuntu镜像操作和apache web容器操作小实训
  8. 未转变者服务器3.26物品id,Unturned未转变者3.21版本物品ID代码汇总
  9. Linux 字体微调
  10. 0days最好的破解网站