python中调用音乐_调用咪咕音乐api的python命令行音乐下载器
说明:
1.调用咪咕音乐api进行音乐下载(暂不支持批量)
2.使用自行安装import的库
效果:
源码:
[Python] 纯文本查看 复制代码import requestsimport urllib.parsefrom tqdm import tqdmimport timedef get_songs(url,keyword): #对keyword进行urlencode加密 key = urllib.parse.quote(keyword) headers={ 'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Mobile Safari/537.36' } #row为最大显示的结果数 params = { 'rows': 20, 'type': 2, 'keyword': key, 'pgc': 1, } response = requests.get(url,headers=headers,params=params) if response.status_code ==200: return response.json()['musics'] else: print('fail to get audiolist. status_code is',response.status_code)#下载进度可视化def downloadFILE(url,name): resp = requests.get(url=url,stream=True) content_size = int(int(resp.headers['Content-Length'])/1024) with open(name, "wb") as f: print("Pkg total size is:",content_size,'k,start...') for data in tqdm(iterable=resp.iter_content(1024),total=content_size,unit='k',desc=name): f.write(data) print(name , "download finished!")def main(): url = 'http://m.music.migu.cn/migu/remoting/scr_search_tag' keyword = input('其输入搜索关键词:') audiolist = get_songs(url,keyword) count = 0 for item in audiolist: songName = item['songName'] artist = item['artist'] #mp3 = item['mp3'] print(count,songName,artist) count+=1 index = input('请输入需要下载的歌曲前序号(默认下载第一首):') if index == '': index = 0 target_link = audiolist[int(index)]['mp3'] save_name = audiolist[int(index)]['songName']+' '+audiolist[int(index)]['artist']+'.mp3' downloadFILE(target_link,save_name) if __name__ == "__main__": main()
总结
1.咪咕的这个api基本没有什么防护只有keyword进行了urlencode,headers中习惯性加了use-agent其他都不需要就可以返回数据
2.params中的row是返回的最大结果数
py文件和exe文件的下载地址:
https://www.lanzous.com/i6j4nob
声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。
python中调用音乐_调用咪咕音乐api的python命令行音乐下载器相关推荐
- python中multiple函数_关于多处理:在Python中将多个参数传递给pool.map()函数
本问题已经有最佳答案,请猛点这里访问. 我需要一些方法来使用pool.map()中接受多个参数的函数.根据我的理解,pool.map()的目标函数只能有一个iterable作为参数,但是有没有其他参数 ...
- python中until函数_等待应用程序窗口:python中的pywinauto.timings.WaitUntilPasses
我试图在pywinauto中使用waituntilpasses来给应用程序时间打开一个新窗口.我已使用SWAPY识别窗口详细信息. 为了进行测试,我手动打开了子窗口,因此WaitUntilPasses ...
- python中排序从小到大_面试官:如何用Python实现三个整数从小到大排序?
概述 今天主要分享一个三树排序的实例,大家可以自己测试玩一下~ 需求 输入三个整数x,y,z,请把这三个数由小到大输出. 方法一:如果是要练练手就随便找个排序算法实现一下 #usr/bin/pytho ...
- python 乡镇轮廓 高德_基于高德地图api和Python的区县地理边界坐标提取
在工作中,经常想用到类似于地热图的方式进行数据展示,奈何工作环境是内网,无法在线进行地图关联,没办法,只好自己想办法上网找边界坐标. 查了很多文档和费心以后,最终发现高德地图api的方法和方式最简单, ...
- 第5天-[21天学Python]-Python中自定义函数及调用的方法
本章内容主要包括: 声明函数 调用自定义函数 变量作用域 各种类型的函数参数应用 使用lambda建立匿名函数 Python其他常用内建函数 1.使用函数 1.1 声明函数 在python中,函数必须 ...
- python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号...
神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号 更多相关问题 下图表示几个植物类群的进化关系.下列叙述不正确的是[ ]A.最先出现的植物类群是甲B.乙和丙都是由甲进化来的 ...
- python字符串能减吗_在python中减去两个字符串(Subtract two strings in python)
在python中减去两个字符串(Subtract two strings in python) 我应该计算两个不同列表的元素之间的差异. 这是我的代码: import operator a = ['5 ...
- python中获取文件大小_如何在Python中获取文件大小
python中获取文件大小 We can get file size in Python using the os module. 我们可以使用os模块在Python中获取文件大小. Python中的 ...
- python中匹配函数_正则表达式以匹配函数名和Python中的所有参数
假设我有一个字符串,如下所示:"func(arg1, arg2, arg3, arg4, ..., argn)" 编辑:此函数不是用某种特定语言编写的.它只有这种格式.如果这样做更 ...
- python中输入字符串_简单讲解Python中的字符串与字符串的输入输出
简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...
最新文章
- 提示和技巧:光线跟踪最佳实践
- 二级域名用asp.net 2.0的实现方案
- linux解压mysql文件命令行_linux mysql命令
- sublimeformaya
- CodeForces - 1427C The Hard Work of Paparazzi(dp+剪枝)
- angular 使用data-bs-datepicker时的一个小问题及解决
- java 单例方法_Java-单例模式 - 惊觉
- 传授电脑蓝屏开不了机怎么办
- 四万字让你精通SQL数据库操作
- 【计算机网络】Internet原理与技术2(因特网的路由协议RIP、OSPF、BGP,网络地址转换NAT,网络协议IPv6)
- Java的Socket编程C/S小例子
- 数据库JDBC的基本内容
- PCI Geomatica 操作视频专辑
- 清华大学计算机直硕生,推免数据 | 清华大学计算机系三大巨变——直硕生减半,本校增多,211增多...
- 打印5列五颗星_55组“数学顺口溜”,孩子想学好数学必须背熟
- 【指数数据处理】1. 指数的成分股参考日调整
- 第七周 OJ总结4-求三角形面积-gyy
- PyCharm2017破解教程
- 20135337朱荟潼 Linux第二周学习总结——操作系统是如何工作的
- 网上打印文件怎么发给商家?怎么给商家发送打印资料
热门文章
- Spark 内存管理 spark.executor.memory /spark.memory.fraction/spark.memory.offHeap.size【堆外内存/内存管理】 钨丝计划
- 中缀表达式转换成逆波兰式
- D. DS栈—波兰式,逆波兰式(dsoj c++)
- 模拟IC与数字IC设计该怎么选?哪个岗位薪资高?
- 哪里能找到安全应急类的管家?
- 全球与中国铸造模拟软件市场深度研究分析报告(2022)
- IDEA版本彩虹屁插件,一个在你编程时疯狂称赞你的 IDEA扩展插件
- 【2019.7.9】欢乐纪中培训(Day 5)
- 苹果iPhone 12新配色曝光:满满都是逼格
- English--音标初识--phonetic symbol