使用tkinter封装一个歌曲下载的APP,结合tkinter以及爬虫知识:

"""
@author: QB
"""
import tkinter as tk
import requests
from urllib import request
import jsonpath
from tkinter import END
import os
from tkinter import filedialog
from tkinter import messageboxclass Music:def __init__(self,master):self.var = tk.StringVar()#1label标签self.label1 = tk.Label(root,text='请输入您要下载的歌曲名:',font=('方正舒体',15))self.label1.grid()#2输入框self.entry1 = tk.Entry(root,font=('隶书',15))self.entry1.grid(row=0,column=1)self.bu = tk.Button(root,text='开始查找',font=('方正舒体',15),command = self.get_music)self.bu.grid(row=0,column=2)#3单选按钮self.r1 = tk.Radiobutton(root,text='网易云',variable=self.var,value='netease')self.r1.grid(row=1,column=0)self.r2 = tk.Radiobutton(root,text='QQ',variable=self.var,value='qq')self.r2.grid(row=1,column=1)self.r3 = tk.Radiobutton(root,text='酷我',variable=self.var,value='kuwo')self.r3.grid(row=1,column=2)#4列表框self.list1 = tk.Listbox(root,font=('华文行楷',15),width=62,heigh=12)self.list1.grid(row=2,columnspan=3)#5两个button按钮self.bu1 = tk.Button(root,text='保存歌曲',font=('方正舒体',15),command = self.song_load)self.bu1.grid(row=3,column=0)self.bu2 = tk.Button(root,text='退出程序',font=('方正舒体',15),command=root.destroy)self.bu2.grid(row=3,column=1)#查询音乐def get_music(self):try:name = self.entry1.get()type1 = self.var.get()url_before = 'https://music.liuzhijin.cn/'headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.71 Safari/537.36','x-requested-with': 'XMLHttpRequest'}data = {'input': name,'filter': 'name','type': type1,'page': 1,}resp = requests.post(url=url_before,headers = headers,data = data)data_json = resp.json()self.title = jsonpath.jsonpath(data_json,'$..title')[0]self.author = jsonpath.jsonpath(data_json,'$..author')[0]self.url = jsonpath.jsonpath(data_json,'$..url')[0]self.list1.insert(END,'歌曲名:'+self.title,'\n','演唱人:'+self.author,'\n','下载链接:'+self.url,'\n','以上信息均已找到!')self.list1.see(END)self.list1.update()except Exception as e:messagebox.showinfo(title = '错误信息',message = str(e))def song_load(self):#进行保存try:savefile = filedialog.asksaveasfilename(filetypes=(("MP3 file","*.mp3"),))request.urlretrieve(self.url,savefile + ".mp3")self.list1.insert(END,self.title+'歌曲已保存!')self.list1.see(END)self.list1.update()except Exception as e:messagebox.showinfo(title = '错误信息',message = str(e))root = tk.Tk()
root.title('音乐下载器')
# root.iconbitmap('fa.ico') #设置左上角小图标
root.geometry('615x360+200+100')
root.resizable(0, 0) #设置窗口不可变
Music(root)
root.mainloop()

tkinter封装歌曲下载APP相关推荐

  1. 基于iOS 10封装的下载器(支持存储读取、断点续传、后台下载、杀死APP重启后的断点续传等功能)

    原文 资源来自:http://www.cocoachina.com/ios/20170316/18901.html 概要 在决定自己封装一个下载器前,我本以为没有那么复杂,可在实际开发过程中困难重重, ...

  2. spotify歌曲下载_使用Spotify数据预测哪些“ Novidades da semana”歌曲会成为热门歌曲

    spotify歌曲下载 TL; DR (TL;DR) Spotify is my favorite digital music service and I'm very passionate abou ...

  3. 基于iOS 10、realm封装的下载器

    代码地址如下: http://www.demodashi.com/demo/11653.html 概要 在决定自己封装一个下载器前,我本以为没有那么复杂,可在实际开发过程中困难重重,再加上iOS10和 ...

  4. 不要签名证书将网页打包封装成苹果APP,无需苹果企业签名,IPA证书签名,ios签名证书,免越狱安装...

    不用签名证书将网页封装成苹果APP,无需苹果企业证书 签名,IPA证书签名,ios证书签名,免越狱安装 (本方法只支持网站封装app,原生的用不了,详细请咨询客服) 近期很多朋友问我把网站变成app的 ...

  5. python网易云_[Python] 网易云歌单/歌曲下载

    界面化 可以根据歌单 / 歌曲ID 下载 歌单/歌曲. eg: 歌单ID: https://music.163.com/#/playlist?id=3233380300 中的 3233380300 运 ...

  6. spotify歌曲下载_k表示使用Spotify歌曲功能进行聚类

    spotify歌曲下载 The spotify API allows us to create a simple server-side application that accesses user ...

  7. Android开发本地及网络Mp3音乐播放器(二十)歌曲下载完成后通知主界面更新本地音乐

    转载请注明出处:http://blog.csdn.net/iwanghang/article/details/51448597 项目源码(打赏5积分请点这边):http://download.csdn ...

  8. ehshig蒙文歌曲_ehshig蒙文歌曲下载

    额格希格蒙语版是一款颇具民族特色的蒙文歌曲下载软件.ehshig蒙文歌曲收集了最全的蒙文歌曲曲库,各种经典的蒙文歌曲以及当前流行的蒙文流行歌全都有,深受广大内蒙用户喜爱! 软件介绍 想了解蒙语音乐或者 ...

  9. 网站转APP软件封装网页转APP打包H5封装分发平台APP封装生成双端

    APP封装 什么是 APP 封装? 什么是APP打包 其实APP打包.APP封装.在线打包 都是一个意思,就是把网站封装成APP 1.APP 封装是指把网页形式的网站通过技术封装成为可以下载 到手机上 ...

最新文章

  1. Go处理百万每分钟的请求
  2. python之装饰器初识
  3. C++中的转换构造函数和类型转换函数
  4. Python基础教程(二):基础语法、变量类型
  5. 【8086汇编-Day6】关于loop的实验
  6. 物联网技术渐趋成熟 车联网应用或成市场主驱力
  7. LeetCode547. Friends Circles 利用union find | bfs | dfs三种方法解决
  8. 算法训练 数的划分 动态规划
  9. form表单中的enctype=multipart/form-data什么意思?
  10. 操作手册模板_挂蓝悬臂浇筑箱梁施工技术操作手册
  11. hdu 2142 Can you find it?
  12. windbg远程调试方法
  13. git操作时:遇到提示Unable to create ‘D:/xxx/.git/index.lock‘: File exists.的解决办法解决方案
  14. goole服务框架Android ID,GSF ID KEY(谷歌服務框架ID)作爲Android設備唯一標識符
  15. Python结巴中文分词工具使用过程中遇到的问题及解决方法
  16. MongoTemplate实现mongodb聚合管道查询
  17. mysql 取差值_mysql计算两条数据差值,求大神解答
  18. 使用xpath爬取学院新闻
  19. IT桔子 - 千里马俱乐部
  20. 章鱼网络 Community Call #4|推进章鱼社区治理

热门文章

  1. Source Insight创建Project
  2. ea服务器全世界位置,MT4指标、EA、dell、模板等放置的位置
  3. 打字时如何正确放置手指 正确的键盘打字手势
  4. SAP QM 启用了Inspection Point的检验批在UD界面里有什么不同?
  5. c++中如何实现定时关机?(逃——
  6. Exceptional C++读书笔记:编译器防火墙与Pimpl惯用法(一)
  7. 使用solarlunar库的阴阳历转换
  8. spyder闪退/connecting to kernel的解决方案
  9. MSU2020硬件编码器比赛
  10. Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理