python音乐实例详解_python下载无损音乐示例源码(qq音乐)
【实例简介】
【实例截图】
【核心代码】
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# [url=home.php?mod=space&uid=238618]@Time[/url] : 2018/7/20 14:37
# [url=home.php?mod=space&uid=686208]@AuThor[/url] : Bnightning
# [url=home.php?mod=space&uid=406162]@site[/url] : https://www.bnightning.cn
# [url=home.php?mod=space&uid=267492]@file[/url] : douqq.py
# @Software: PyCharm
import requests
import json
headers = {
'Host': 'c.y.qq.com',
'Referer': 'http://c.y.qq.com/',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 '
'Safari/537.36 '
}
def douqq_post(mid):
"""
返回歌曲下载url
:param mid:歌曲mid
:return: 字典
"""
post_url = 'http://www.douqq.com/qqmusic/qqapi.php'
data = {'mid': mid}
res = requests.post(post_url, data=data)
get_json = json.loads(res.text)
return eval(get_json)
def download_file(src, file_path):
"""
歌曲下载
:param src: 下载链接
:param file_path: 存储路径
:return: 文件路径
"""
r = requests.get(src, stream=True)
f = open(file_path, "wb")
for chunk in r.iter_content(chunk_size=512):
if chunk:
f.write(chunk)
return file_path
def choice_download(dic):
print('1. m4a视频')
print('2. mp3普通品质')
print('3. mp3高品质')
print('4. ape高品无损')
print('5. flac无损音频')
select = int(input("Please input your choice:"))
src = ''
postfix = ''
if select == 1:
src = dic['m4a']
postfix = '.m4a'
if select == 2:
src = dic['mp3_l']
postfix = '.mp3'
if select == 3:
src = dic['mp3_h']
postfix = '.mp3'
if select == 4:
src = dic['ape']
postfix = '.ape'
if select == 5:
src = dic['flac']
postfix = '.flac'
return postfix, src.replace('\/\/', '//').replace('\/', '/')
def find_song(word):
"""
查找歌曲
:param word: 歌曲名
:return: 返回歌曲mid
"""
get_url = '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=' word
res1 = requests.get(get_url, headers=headers)
get_json = json.loads(res1.text.strip('callback()[]'))
jsons = get_json['data']['song']['list']
songmid = []
media_mid = []
song_singer = []
i = 1
for song in jsons:
# print(i, ':' song['songname'], '---', song['singer'][0]['name'], song['songmid'], song['media_mid'])
print(i, ':' song['songname'], '---', song['singer'][0]['name'])
songmid.append(song['songmid'])
media_mid.append(song['media_mid'])
song_singer.append(song['singer'][0]['name'])
i = i 1
select = int(input("Please input your choice:")) - 1
return songmid[select], song_singer[select]
if __name__ == '__main__':
# songname = '叹云兮'
songname = input("Please input the music name:")
song_mid, singer = find_song(songname)
dic = douqq_post(song_mid)
# {
# "mid":"004FjJo32TISsY",
# "m4a":"http:\/\/dl.stream.qqmusic.qq.com\/C400004FjJo32TISsY.m4a?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=38",
# "mp3_l":"http:\/\/dl.stream.qqmusic.qq.com\/M500004FjJo32TISsY.mp3?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",
# "mp3_h":"http:\/\/dl.stream.qqmusic.qq.com\/M800004FjJo32TISsY.mp3?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",
# "ape":"http:\/\/dl.stream.qqmusic.qq.com\/A000004FjJo32TISsY.ape?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",
# "flac":"http:\/\/dl.stream.qqmusic.qq.com\/F000004FjJo32TISsY.flac?guid=2095717240&vkey=0B599CA74745F8A27A33A1FED2C7F6925FFFE8ED040569FB3540EB011FE9C5A3D7F36EAE4BDBD450F25076A23EBAF95A5ECB54B22C5E8F10&uin=0&fromtag=53",
# "pic":"https:\/\/y.gtimg.cn\/music\/photo_new\/T002R300x300M000003NZyTh4eMMsp.jpg?max_age=2592000"
# }
# print('mid:' dic['mid'])
postfix, url = choice_download(dic)
save_path = "D:\\Music\\"
download_file(url, save_path songname ' - ' singer postfix)
print('Download Successful')
python音乐实例详解_python下载无损音乐示例源码(qq音乐)相关推荐
- python代码覆盖率测试_unittest+coverage单元测试代码覆盖操作实例详解_python
这篇文章主要为大家详细介绍了unittest+coverage单元测试代码覆盖操作的实例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 基于上一篇文章,这篇文章是关于使用coverage来实现代码 ...
- vue 源码详解(零):Vue 源码流程图
vue 源码详解(零):Vue 源码流程图 最近在研究 Vue 的源码, 整理博客, 结果想到的.看到的内容实在是太多了, 不知道从何写起, 故整理了一个大致的流程图,根据这个顺序进行一一整理. 为了 ...
- Java API源码在哪里找_详解查看JAVA API及JAVA源码的方法
在java的日常学习中,我们有时候会需要看java的api说明,或者是查看java的源码,使我们更好的了解java,接下来我就来说说如何查看java的api以及java源码 对于java的api,一般 ...
- python开发技术详解pdf下载_python开发技术详解附源码-python开发技术详解电子书pdf下载高清去水印版-精品下载...
Python开发技术详解适合Python爱好者.大中专院校的学生.社会培训班的学生以及用Python语言进行系统管理.GUI开发.Web开发.数据库编程.网络编程的人员使用. 内容提要 Python是 ...
- python算术运算符详解_Python中关于算术运算符的实例详解
这篇文章主要介绍了Python算术运算符实例详解的相关资料,需要的朋友可以参考下 Python算术运算符 以下假设变量a为10,变量b为20: 运算符 描述 实例 + 加 - 两个对象相加 a + b ...
- python协程详解_python协程详解
原博文 2019-10-25 10:07 − # python协程详解 ![python协程详解](https://pic2.zhimg.com/50/v2-9f3e2152b616e89fbad86 ...
- python int函数详解_Python内置函数OCT详解
英文文档:oct ( x ) Convert an integer number to an octal string. The result is a valid Python expression ...
- python 元类 详解_Python 元类详解 __new__、__init__、__call__、__metacalss__
了解元类之前,先了解几个魔术方法: __new__.__init__.__call__ __new__: 对象的创建,是一个静态方法,第一个参数是cls.(想想也是,不可能是self,对象还没创建,哪 ...
- python pexpect模块详解_python pexpect原理详解及使用说明
pexpect是python中用于实现SSH,FTP,telnet等命令进行自动化交互,从而无需人工干预实现自动化运维的一个第三方扩展模块.理论的描述过于抽象,这里首先设想一下,如果让您设计一个实现自 ...
- python字符串格式化详解_Python字符串格式化%s%d%f详解
Python字符串格式化%s%d%f详解 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: Python字符串格式化%s%d%f详解.txt ] (友情提示:右键点上 ...
最新文章
- react 让滚动条一直在下面_Ink 2.0 发布:命令行应用程序的 React
- 用友服务器整体迁移--数据库附加
- 为何python不好找工作k-为何python不好找工作,seo行业不好转行了
- 杭电2035--人见人爱A^B
- 南方科技大学计算机交换生,国际合作 – 合作交流分类 – 南方科技大学生物医学工程系...
- wpf office 菜单_如何带回Office 2007中的旧菜单
- 信息学奥赛一本通(1323:【例6.5】活动选择)
- HDFS小文件问题解决方案
- Python扩展库numpy中where()函数的三种用法
- c++ 结构体中不同类型的初始值_不同类型结构的厂房效果图大盘点
- 初始化Direct3D(2)
- 第二季-专题11-世界一下变大了-MMU
- 简单的达梦数据库使用DISTINCT去重
- 我为什么弃用OpenStack转向CNware
- [转载]希捷固件门7200.12 CC46固件升级方法
- 3D Vision--生成空间任意圆柱及任意直线
- c语言之“数组”初级篇
- 我在亚马逊云平台的学习成长之路
- 计算机专业笔记本用i5还是i7,玩游戏笔记本i5和i7的区别_笔记本电脑游戏用i5还是i7...
- 岁月你别催 该来的我不推;岁月你别催 走远的我不追;
热门文章
- Deprecated: Function eregi() is deprecated in ……【解决方法】
- IIS如何添加MIME类型.svg/.woff2/.woff
- SolidWorks用鼠标中键控制模型的旋转、缩放和平移
- 全自动IC半导体MCU芯片烧录flash大批量生产出货的解决方案分析
- 怎么删除计算机病毒,电脑中病毒删不掉怎么办?
- [html + css] SVG动画 发光渐变炫彩猫猫头
- java gzip rest_使用restclient或postman发送gzip数据
- python入门之函数结构第二关_Python入门二:函数
- php文字转换为图片,图片转换成文字 把图片转换成可以编辑的文字,图片文字转换成文本文字的方法...
- 时间轴+html+源码,HTML5+CSS3+Jquery实现纯手工的垂直时光轴【附源码】