说明:

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命令行音乐下载器相关推荐

  1. python中multiple函数_关于多处理:在Python中将多个参数传递给pool.map()函数

    本问题已经有最佳答案,请猛点这里访问. 我需要一些方法来使用pool.map()中接受多个参数的函数.根据我的理解,pool.map()的目标函数只能有一个iterable作为参数,但是有没有其他参数 ...

  2. python中until函数_等待应用程序窗口:python中的pywinauto.timings.WaitUntilPasses

    我试图在pywinauto中使用waituntilpasses来给应用程序时间打开一个新窗口.我已使用SWAPY识别窗口详细信息. 为了进行测试,我手动打开了子窗口,因此WaitUntilPasses ...

  3. python中排序从小到大_面试官:如何用Python实现三个整数从小到大排序?

    概述 今天主要分享一个三树排序的实例,大家可以自己测试玩一下~ 需求 输入三个整数x,y,z,请把这三个数由小到大输出. 方法一:如果是要练练手就随便找个排序算法实现一下 #usr/bin/pytho ...

  4. python 乡镇轮廓 高德_基于高德地图api和Python的区县地理边界坐标提取

    在工作中,经常想用到类似于地热图的方式进行数据展示,奈何工作环境是内网,无法在线进行地图关联,没办法,只好自己想办法上网找边界坐标. 查了很多文档和费心以后,最终发现高德地图api的方法和方式最简单, ...

  5. 第5天-[21天学Python]-Python中自定义函数及调用的方法

    本章内容主要包括: 声明函数 调用自定义函数 变量作用域 各种类型的函数参数应用 使用lambda建立匿名函数 Python其他常用内建函数 1.使用函数 1.1 声明函数 在python中,函数必须 ...

  6. python随机抽签列表中的同学值日_神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号...

    神奇的大抽签--Python中的列表_章节测验,期末考试,慕课答案查询公众号 更多相关问题 下图表示几个植物类群的进化关系.下列叙述不正确的是[ ]A.最先出现的植物类群是甲B.乙和丙都是由甲进化来的 ...

  7. python字符串能减吗_在python中减去两个字符串(Subtract two strings in python)

    在python中减去两个字符串(Subtract two strings in python) 我应该计算两个不同列表的元素之间的差异. 这是我的代码: import operator a = ['5 ...

  8. python中获取文件大小_如何在Python中获取文件大小

    python中获取文件大小 We can get file size in Python using the os module. 我们可以使用os模块在Python中获取文件大小. Python中的 ...

  9. python中匹配函数_正则表达式以匹配函数名和Python中的所有参数

    假设我有一个字符串,如下所示:"func(arg1, arg2, arg3, arg4, ..., argn)" 编辑:此函数不是用某种特定语言编写的.它只有这种格式.如果这样做更 ...

  10. python中输入字符串_简单讲解Python中的字符串与字符串的输入输出

    简单讲解Python中的字符串与字符串的输入输出 发布于 2016-03-26 14:35:42 | 110 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向 ...

最新文章

  1. 提示和技巧:光线跟踪最佳实践
  2. 二级域名用asp.net 2.0的实现方案
  3. linux解压mysql文件命令行_linux mysql命令
  4. sublimeformaya
  5. CodeForces - 1427C The Hard Work of Paparazzi(dp+剪枝)
  6. angular 使用data-bs-datepicker时的一个小问题及解决
  7. java 单例方法_Java-单例模式 - 惊觉
  8. 传授电脑蓝屏开不了机怎么办
  9. 四万字让你精通SQL数据库操作
  10. 【计算机网络】Internet原理与技术2(因特网的路由协议RIP、OSPF、BGP,网络地址转换NAT,网络协议IPv6)
  11. Java的Socket编程C/S小例子
  12. 数据库JDBC的基本内容
  13. PCI Geomatica 操作视频专辑
  14. 清华大学计算机直硕生,推免数据 | 清华大学计算机系三大巨变——直硕生减半,本校增多,211增多...
  15. 打印5列五颗星_55组“数学顺口溜”,孩子想学好数学必须背熟
  16. 【指数数据处理】1. 指数的成分股参考日调整
  17. 第七周 OJ总结4-求三角形面积-gyy
  18. PyCharm2017破解教程
  19. 20135337朱荟潼 Linux第二周学习总结——操作系统是如何工作的
  20. 网上打印文件怎么发给商家?怎么给商家发送打印资料

热门文章

  1. Spark 内存管理 spark.executor.memory /spark.memory.fraction/spark.memory.offHeap.size【堆外内存/内存管理】 钨丝计划
  2. 中缀表达式转换成逆波兰式
  3. D. DS栈—波兰式,逆波兰式(dsoj c++)
  4. 模拟IC与数字IC设计该怎么选?哪个岗位薪资高?
  5. 哪里能找到安全应急类的管家?
  6. 全球与中国铸造模拟软件市场深度研究分析报告(2022)
  7. IDEA版本彩虹屁插件,一个在你编程时疯狂称赞你的 IDEA扩展插件
  8. 【2019.7.9】欢乐纪中培训(Day 5)
  9. 苹果iPhone 12新配色曝光:满满都是逼格
  10. English--音标初识--phonetic symbol