python实现音乐下载器


Posted in Python onApril 15, 2018

本文实例为大家分享了python音乐下载器的具体代码,供大家参考,具体内容如下

import requests 
import urllib 
import json 
from tkinter import * 
import tkinter.messagebox 
from tkinter.filedialog import askdirectory 
 
class QQMusic(): 
  def __init__(self): 
    self.interface = Tk() 
    self.interface.title('QQ音乐下载器') 
    self.SavePath = 'C:/Users' 
    self.entry = None 
    self.label = None 
  def DownloadMusic(self): 
    res1 = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=20&w='+self.entry.get()) 
    jm1 = json.loads(res1.text.strip('callback()[]'))['data']['song']['list'][0] 
 
    mids=jm1['media_mid'] 
    songmids=jm1['songmid'] 
    songnames=jm1['songname'] 
    singers=jm1['singer'][0]['name'] 
 
    res2 = requests.get('https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&\ 
    jsonpCallback=MusicJsonCallback&cid=205361747&songmid='+songmids+'&filename=C400'+mids+'.m4a&guid=6612300644') 
    jm2 = json.loads(res2.text) 
    vkey = jm2['data']['items'][0]['vkey'] 
    srcs='http://dl.stream.qqmusic.qq.com/C400'+mids+'.m4a?vkey='+vkey+'&guid=6612300644&uin=0&fromtag=66' 
    try: 
      urllib.request.urlretrieve(srcs,self.SavePath+'/'+songnames+'-'+singers+'.mp3')#.m4a 
      tkinter.messagebox.showinfo('完成','歌曲下载成功\n保存在'+self.SavePath) 
    except: 
      tkinter.messagebox.showerror('错误','下载出错,请重试!') 
  def ChangePath(self): 
    self.SavePath = askdirectory() 
    self.label["text"] = self.SavePath 
  def Run(self): 
    button = Button(self.interface,text='下载歌曲',command = self.DownloadMusic) 
    button.grid(row=0,column=1,padx=3,pady=2) 
    self.entry = Entry(self.interface,width=30) 
    self.entry.grid(row=0,column=0,padx=3,pady=2) 
    button1 = Button(self.interface,text='保存位置',command = self.ChangePath) 
    button1.grid(row=1,column=1,padx=3,pady=2) 
    self.label = Label(self.interface,text=self.SavePath) 
    self.label.grid(row=1,column=0,padx=3,pady=2) 
     
QQ = QQMusic() 
QQ.Run()

可以实现音乐的快速制定路径下载。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 正则表达式操作指南
May 04 Python
python中 ? : 三元表达式的使用介绍
Oct 09 Python
go和python调用其它程序并得到程序输出
Feb 10 Python
python的文件操作方法汇总
Nov 10 Python
pytorch构建网络模型的4种方法
Apr 13 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
python MNIST手写识别数据调用API的方法
Aug 08 Python
关于Python中的向量相加和numpy中的向量相加效率对比
Aug 26 Python
Python面向对象之私有属性和私有方法应用案例分析
Dec 31 Python
TensorFlow梯度求解tf.gradients实例
Feb 04 Python
pytorch  网络参数 weight bias 初始化详解
Jun 24 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
tensorflow 1.0用CNN进行图像分类
Apr 15 #Python
tensorflow学习笔记之mnist的卷积神经网络实例
Apr 15 #Python
tensorflow学习笔记之简单的神经网络训练和测试
Apr 15 #Python
Pytorch入门之mnist分类实例
Apr 14 #Python
pytorch构建网络模型的4种方法
Apr 13 #Python
Python输入二维数组方法
Apr 13 #Python
Python基于递归实现电话号码映射功能示例
Apr 13 #Python
You might like
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
2015/07/01 PHP
PHP Web木马扫描器代码分享
2015/09/06 PHP
小议Function.apply() 之一------(函数的劫持与对象的复制)
2006/11/30 Javascript
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
JS实现日期时间动态显示的方法
2015/12/07 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
JS实现图片的不间断连续滚动的简单实例
2016/06/03 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
微信小程序实现animation动画
2018/01/26 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
Node.js系列之连接DB的方法(3)
2019/08/30 Javascript
Vue中图片Src使用变量的方法
2019/10/30 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
python实现在图片上画特定大小角度矩形框
2018/10/24 Python
Python拼接字符串的7种方法总结
2018/11/01 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
详解Python中is和==的区别
2019/03/21 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
PHP开发工程师面试问题集锦
2012/11/01 面试题
大专毕业生自我评价分享
2013/11/10 职场文书
七年级英语教学反思
2014/01/15 职场文书
优秀团员事迹材料1000字
2014/08/20 职场文书
mybatis中sql语句CDATA标签的用法说明
2021/06/30 Java/Android