GUI 界面的免费音乐下载 支持批量下载

导包

  1. import urllib
  2. import requests
  3. import wx
import urllib
import requests
import wx

界面化

class MyFrame(wx.Frame):"""窗口"""def __init__(self, parent, id):wx.Frame.__init__(self, parent, id, title="GUI酷我音乐下载", pos=(400, 400), size=(900, 400))# 画板self.panel = wx.Panel(self)title = wx.StaticText(self.panel, label='GUI酷我音乐下载器', pos=(185, 40))font = wx.Font(20, wx.DEFAULT, wx.FONTSTYLE_NORMAL, wx.NORMAL)title.SetFont(font)font_name = wx.Font(16, wx.DEFAULT, wx.FONTSTYLE_NORMAL, wx.NORMAL)self.name = wx.StaticText(self.panel, label='歌名或歌手:', pos=(90, 100))self.CXJG = wx.StaticText(self.panel, label='查询结果:', pos=(450, 0))self.name.SetFont(font_name)self.name_text = wx.TextCtrl(self.panel, pos=(220, 100),size=(235,25))self.names = wx.StaticText(self.panel, label='序     号:', pos=(100, 170))self.names.SetFont(font_name)self.names_text = wx.TextCtrl(self.panel, pos=(220, 170), size=(235, 25))self.bu_confirm = wx.Button(self.panel, label="查询",pos=(140,250),size=(100,50))self.bu_confirm.Bind(wx.EVT_BUTTON,self.prints)self.bu_confirm = wx.Button(self.panel, label="下载",pos=(260,250),size=(100,50))self.bu_confirm.Bind(wx.EVT_BUTTON, self.writes)self.bu_confirm = wx.Button(self.panel, label="退出",pos=(380,250),size=(100,50))self.bu_confirm.Bind(wx.EVT_BUTTON, self.closes)

之后进行对应按钮功能设置

# 这个是对数据进行保存并把值返回到get_url这个函数里面def get_url(self):test = self.name_text.GetValue()new = urllib.parse.quote(test)global headersheaders = {'Referer': 'http://www.kuwo.cn/search/list?key={}'.format(new),'User-Agent': 'Mozilla/5.0 (Wind ows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36','csrf': 'NZNCXJFZLFF','Host': 'www.kuwo.cn','Cookie': '_ga=GA1.2.172942019.1580702894; _gid=GA1.2.771718281.1580890479; uname3=%u3081%u3044%u305F%u3093%u3066%u3044%u3053%u306A%u3093; t3kwid=235511292; userid=235511292; websid=2033651825; pic3="http://q.qlogo.cn/qqapp/100243533/BEB10B9B72AB7C5E6700E08B820BA1C5/100"; t3=qq; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1580702894,1580890479,1580891122; _gat=1; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1580892336; kw_token=NZNCXJFZLFF'}url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn=1&rn={}&reqId=ec2404f0-47f3-11ea-b35a-df5b093dd227'.format(new, str(30))response = requests.get(url, headers=headers).json()return response
# 查询按钮def prints(self,event):jsons = self.get_url()lists = jsons['data']['list']for i in lists:rids.append((i['rid'], i['name'], i['artist']))sun = 0iss = ridsnum = 0nums = 0for i in iss:if sun <= 17:wx.StaticText(self.panel, label=str(sun) + '.' + i[1] + '-' + i[2], pos=(505, num))num = num + 20else:wx.StaticText(self.panel, label=str(sun) + '.' + i[1] + '-' + i[2], pos=(705, nums))nums = nums + 20sun += 1wx.MessageBox("查询完成")return rids
# 下载按钮def writes(self,event):list = []nums = self.names_text.GetValue()list.append(nums.split(" "))for numss in list:for num in numss:rid = ridsurl = 'http://www.kuwo.cn/url?format=mp3&rid={}&response=url&type=convert_url3'.format(str(rid[int(num)][0]))response = requests.get(url, headers=headers).json()html = response['url']data = requests.get(html).contentwith open('E:\\音乐\\{}-{}.mp3'.format(rid[int(num)][1], rid[int(num)][2]), 'wb') as f:f.write(data)wx.MessageBox('下载完成     {}-{}'.format(rid[int(num)][1], rid[int(num)][2]))
# 退出按钮def closes(self, event):frame.Close()

最后附上源码

import urllib
import requests
import wx
rids = []
jsons = {}
headers = ""
class MyFrame(wx.Frame):"""窗口"""def __init__(self, parent, id):wx.Frame.__init__(self, parent, id, title="GUI酷我音乐下载", pos=(400, 400), size=(900, 400))# 画板self.panel = wx.Panel(self)title = wx.StaticText(self.panel, label='GUI酷我音乐下载器', pos=(185, 40))font = wx.Font(20, wx.DEFAULT, wx.FONTSTYLE_NORMAL, wx.NORMAL)title.SetFont(font)font_name = wx.Font(16, wx.DEFAULT, wx.FONTSTYLE_NORMAL, wx.NORMAL)self.name = wx.StaticText(self.panel, label='歌名或歌手:', pos=(90, 100))self.CXJG = wx.StaticText(self.panel, label='查询结果:', pos=(450, 0))self.name.SetFont(font_name)self.name_text = wx.TextCtrl(self.panel, pos=(220, 100),size=(235,25))self.names = wx.StaticText(self.panel, label='序     号:', pos=(100, 170))self.names.SetFont(font_name)self.names_text = wx.TextCtrl(self.panel, pos=(220, 170), size=(235, 25))self.bu_confirm = wx.Button(self.panel, label="查询",pos=(140,250),size=(100,50))self.bu_confirm.Bind(wx.EVT_BUTTON,self.prints)self.bu_confirm = wx.Button(self.panel, label="下载",pos=(260,250),size=(100,50))self.bu_confirm.Bind(wx.EVT_BUTTON, self.writes)self.bu_confirm = wx.Button(self.panel, label="退出",pos=(380,250),size=(100,50))self.bu_confirm.Bind(wx.EVT_BUTTON, self.closes)wx.StaticText(self.panel, label='使用说明',pos=(0,250))wx.StaticText(self.panel, label='先使用查询功能查询出对',pos=(0,270))wx.StaticText(self.panel, label='应内容,在使用下载功能',pos=(0,290))wx.StaticText(self.panel, label='下载对应序号的内容,序',pos=(0,310))wx.StaticText(self.panel, label='号内的使用空格进行分割!',pos=(0,330))center = wx.StaticText(self.panel, label='制作人:江湖人称刘某人    版本:V1.0',pos=(170,330))center.SetFont(font_name)def get_url(self):test = self.name_text.GetValue()new = urllib.parse.quote(test)global headersheaders = {'Referer': 'http://www.kuwo.cn/search/list?key={}'.format(new),'User-Agent': 'Mozilla/5.0 (Wind ows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36','csrf': 'NZNCXJFZLFF','Host': 'www.kuwo.cn','Cookie': '_ga=GA1.2.172942019.1580702894; _gid=GA1.2.771718281.1580890479; uname3=%u3081%u3044%u305F%u3093%u3066%u3044%u3053%u306A%u3093; t3kwid=235511292; userid=235511292; websid=2033651825; pic3="http://q.qlogo.cn/qqapp/100243533/BEB10B9B72AB7C5E6700E08B820BA1C5/100"; t3=qq; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1580702894,1580890479,1580891122; _gat=1; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1580892336; kw_token=NZNCXJFZLFF'}url = 'http://www.kuwo.cn/api/www/search/searchMusicBykeyWord?key={}&pn=1&rn={}&reqId=ec2404f0-47f3-11ea-b35a-df5b093dd227'.format(new, str(30))response = requests.get(url, headers=headers).json()return responsedef prints(self,event):jsons = self.get_url()lists = jsons['data']['list']for i in lists:rids.append((i['rid'], i['name'], i['artist']))sun = 0iss = ridsnum = 0nums = 0for i in iss:if sun <= 17:wx.StaticText(self.panel, label=str(sun) + '.' + i[1] + '-' + i[2], pos=(505, num))num = num + 20else:wx.StaticText(self.panel, label=str(sun) + '.' + i[1] + '-' + i[2], pos=(705, nums))nums = nums + 20sun += 1wx.MessageBox("查询完成")return ridsdef closes(self, event):frame.Close()def writes(self,event):list = []nums = self.names_text.GetValue()list.append(nums.split(" "))for numss in list:for num in numss:rid = ridsurl = 'http://www.kuwo.cn/url?format=mp3&rid={}&response=url&type=convert_url3'.format(str(rid[int(num)][0]))response = requests.get(url, headers=headers).json()html = response['url']data = requests.get(html).contentwith open('E:\\音乐\\{}-{}.mp3'.format(rid[int(num)][1], rid[int(num)][2]), 'wb') as f:f.write(data)wx.MessageBox('下载完成     {}-{}'.format(rid[int(num)][1], rid[int(num)][2]))if __name__=="__main__":app = wx.App()frame = MyFrame(parent=None,id=1)frame.Show()app.MainLoop()

写的有点乱有什么问题评论去问,下载的路径是一个绝对路径,修改的时候要使用双\进行上下级之间的分割,序号与序号之间使用空格进行分割

GUI 界面的免费音乐下载 支持批量下载相关推荐

  1. Mipony 免费的网络硬盘批量下载工具,下载网盘文件省时省力!

    现在用网盘分享文件的人越来越多了,所以异次元之前推出了一个"找文件网盘搜索引擎"方便大家查找下载资源.如果你常常下载一些网盘的资源,你肯定会发现大多数国外网盘免费下载时都需要等待一 ...

  2. B站视频下载器,超清4k视频下载,一键解析视频合集,支持批量下载提取视频封面

    文末提供软件下载链接~ 一.软件简介 该视频下载器完全免费,没有广告,不需要安装,支持下载绝大多数站内视频,并且可以对视频合集自动解析,支持多种清晰度下载,如480P,720P,1080P,1080P ...

  3. python爬取qq音乐周杰伦_Python爬取QQ音乐url及批量下载

    QQ音乐还是有不少的好音乐,有些时候想要下载好听的音乐,如果在网页下载都是还需要登录什么的.于是,来了个QQmusic的爬虫.至少我觉得for循环爬虫,最核心的应该就是找到待爬元素所在url吧. 参考 ...

  4. Python爬取QQ音乐url及批量下载

    QQ音乐还是有不少的好音乐,有些时候想要下载好听的音乐,如果在网页下载都是还需要登录什么的.于是,来了个QQmusic的爬虫.至少我觉得for循环爬虫,最核心的应该就是找到待爬元素所在url吧. 参考 ...

  5. android源码下载方法 批量下载 基于windows os

    安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...

  6. 手机下载神器批量下载图片教程

    手机版IDM下载神器批量下载图片漫画实际操作教程,现在介绍两个批量下载图片的方法 视频教程: 手机IDM下载器批量下载图片漫画实际操作 首先,打开你要下载图片的网页,同时打开手机版idm下载器和手机记 ...

  7. python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载

    每天一点点,记录学习 python 爬取菜鸟教程python100题 近期爬虫项目,看完请点赞哦: 1:python 爬取菜鸟教程python100题,百度贴吧图片反爬虫下载,批量下载 2:pytho ...

  8. PDF下载与批量下载处理

    需求:下载合同,且支持批量下载 思路: 1.点击下载时,发送请求,携带合同的id 2.根据id,获取合同对象,根据对象获取合同文件在服务器上的路径 3.通过IO进行下载 1.单个下载 发送请求,传一个 ...

  9. 使用Flickr下载器批量下载Flickr的相册

    相信用过Flickr下载图片的人都知道从Flickr上下载原图的操作有点小麻烦.楼主花了许久时间在网上寻找批量下载工具,一直没找到合适的.于是就自己动手写了个Win10应用:Flickr下载器,功能是 ...

最新文章

  1. 机器人日行十万步却无需动力源!究竟如何完美的机械结构让你开始怀疑人身...
  2. 仿真器(emulator)和模拟器(simulator)的区别
  3. python推荐书-python的书推荐
  4. day1 工资条的制作
  5. 数据结构与算法---笔记
  6. docker实现宿主机和容器之间数据共享
  7. 电脑知识:关于电脑的十大误区,原来是这样!
  8. 学水利的想转行计算机,为什么说千万别学水利水电工程?附水利八大院排名2020年(最新)...
  9. Java学习之面板与布局管理器
  10. 台式电脑投影切屏快捷键_电脑投影切屏快捷键
  11. Mentohust 编译安装方法 (2022)
  12. GAE+bottle+jinja2+beaker快速开发demo
  13. Cpp多重继承会产生的问题
  14. Redis数据倾斜与JD开源hotkey源码分析揭秘
  15. 每一个梦想都要让它长上翅膀
  16. 双系统,win7重装后,找回linux
  17. Phonetic symbol 辅音 - 清辅音/ -- /h/
  18. 做第三方软件测评的意义
  19. Some Enforcer rules have failed. Look above for specific messages explaining why the rule failed.
  20. iOS 添加在scrollview的子控件,用masonry布局的问题

热门文章

  1. CGB2202面向对象第8天
  2. 185.[USACO Oct08] 挖水井 (第三次考试大整理)
  3. 【Docker】安装mysql,redis
  4. UT8 编码引发的血案
  5. Android中添加Options Menu,按MENU键无反应
  6. 不坑盒子:强大的word插件,让工作更高效
  7. Win32 PE病毒原理分析
  8. MJ刷新加MJE解析
  9. Python学习(三十八)—— Djago之Ajax
  10. 打印机自动打印之前的页面的解决方法