python实现音乐下载器

yipeiwu_com5年前Python基础

本文实例为大家分享了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如何快速上手? 快速掌握一门新语言的方法

那么Python如何快速上手?找来了一篇广受好评的新语言学习方法介绍,供大家参考。 听说,你决定要为你的 “技能树” 再添加一门特定的编程语言。那该怎么办呢? 在这篇文章中,作者提出了...

详解Swift中属性的声明与作用

一、引言 属性将值与类,结构体,枚举进行关联。Swift中的属性分为存储属性和计算属性两种,存储属性用于存储一个值,其只能用于类与结构体,计算属性用于计算一个值,其可以用于类,结构体和枚...

python基础教程之while循环

python基础教程之while循环

前言 今天来说下python中的循环。循环的意思是什么,以环形、回路或轨道运行;沿曲折的路线运行;特指运行一周而回到原处。这是百度给出的循环的意思。在python中,就是重复执行你给的指...

python 微信好友特征数据分析及可视化

python 微信好友特征数据分析及可视化

一、背景及研究现状 在我国互联网的发展过程中,PC互联网已日趋饱和,移动互联网却呈现井喷式发展。数据显示,截止2013年底,中国手机网民超过5亿,占比达81%。伴随着移动终端价格的下降及...

python 函数传参之传值还是传引用的分析

python 函数传参之传值还是传引用的分析

首先还是应该科普下函数参数传递机制,传值和传引用是什么意思?    函数参数传递机制问题在本质上是调用函数(过程)和被调用函数(过程)在调用发生时进行通信的方法问题。基本的参数传递机制有...