python:想要什么资源,直接上去莽就完事了~
前言
嗨喽,大家好呀,这里是魔王~
我们空闲时都会听听音乐,放松一下自己的心情,每个人都会有自己喜欢的歌手或歌
但是通常一个平台不能完全找到,因为版权原因,经常需要几个软件跨着听,非常的麻烦
那么现在,我们直接来用代码全部下载下来用本地播放器播放,美滋滋!
开发环境:
- 版 本:python3.8
- 编辑器:pycharm
所使用模块
- requests
- prettytable
这两个都是第三方模块,所以我们需要安装:
win + R 输入cmd 输入安装命令 pip install 模块名 如果出现爆红 可能是因为 网络连接超时 切换国内镜像源
在pycharm中点击Terminal(终端) 输入安装命令
如何配置pycharm里面的python解释器?
- 选择file(文件) >>> setting(设置) >>> Project(项目) >>> python interpreter(python解释器)
- 点击齿轮, 选择add
- 添加python安装路径
pycharm如何安装插件?
- 选择file(文件) >>> setting(设置) >>> Plugins(插件)
- 点击 Marketplace 输入想要安装的插件名字 比如:翻译插件 输入 translation / 汉化插件 输入 Chinese
- 选择相应的插件点击 install(安装) 即可
- 安装成功之后 是会弹出 重启pycharm的选项 点击确定, 重启即可生效
流程思路
本次主要实现
- 搜索功能
- 下载歌曲功能
搜索功能
- 发送请求 向以前的搜索功能接口发送 请求
- 获取数据 获取所有歌曲信息数据
- 解析数据 歌曲 歌手名 专辑 歌曲mid(用来下载歌曲必须要的参数)
- 格式化输出
- 下载歌曲功能
通过获取的歌曲mid 拼接 需要的音频url
解答、资料、源码点击领取~
- 发送网络请求 需要的音乐url
- 获取数据 获取 里面生成的 部分音乐链接 合并 (mp3 数据所在的链接了)
- 发送请求 (mp3 数据所在的链接了)
- 获取数据 音乐二进制数据
- 保存数据
代码
import requests # 发送网络请求
import json
import prettytable as ptheaders = {'cookie': 'pgv_pvid=7300130020; tvfe_boss_uuid=242c5295a1cb156d; RK=6izJ0rkfNn; ptcz=622f5bd082de70e3e6e9a077923b48f72600cafd5e4b1e585e5f418570fa30fe; ptui_loginuin=1321228067; luin=o3452264669; o_cookie=3452264669; ts_uid=5501087131; fqm_pvqid=89ea2cc7-6806-4091-989f-5bc2f2cdea5c; lskey=00010000d96bdb23303bc141246a5c2f9a02cf45acf079eaab6645fdc10923e7a0eaac09aa24533ab1299555; fqm_sessionid=d77623f3-4dd0-4709-8e50-a34986b17344; pgv_info=ssid=s4530794666; ts_last=y.qq.com/; ts_refer=ADTAGmyqq; _qpsvr_localtk=0.8458135546904957; euin=oK6kowEAoK4z7eclow6qoiSz7z**; psrf_qqrefresh_token=; psrf_qqaccess_token=; wxuin=1152921504872193707; psrf_qqopenid=; wxrefresh_token=53_FHlMDgGCCfOUCXRxCMGFGYHxwtDV0_rZANu84l_KrYtPYRVSWqpxoWqojdj1coj4CF_H4qNrXw0WrZtQdlsozcwYQbVp0SepI9Jmm_Pfhjk; qqmusic_key=W_X_3mJrl760n0lDWkgqqBhBMX2VPnH1PNwwUZjvNkmSnurNjTTap1J6gjetIU50hraK3AjHgw5T4ay2R3; qm_keyst=W_X_3mJrl760n0lDWkgqqBhBMX2VPnH1PNwwUZjvNkmSnurNjTTap1J6gjetIU50hraK3AjHgw5T4ay2R3; psrf_qqunionid=; tmeLoginType=1; wxunionid=oqFLxsgDOwYRnPDffuK5UINv958c; wxopenid=opCFJw5Vvcf24VLQSyNpKAX6gt3I; wxuin=1152921504872193707; qm_keyst=W_X_3mJrl760n0lDWkgqqBhBMX2VPnH1PNwwUZjvNkmSnurNjTTap1J6gjetIU50hraK3AjHgw5T4ay2R3; login_type=2'
}
name = input('请输入你想要下载的歌曲或者歌手名称:')
# 1. 发送请求 向以前的搜索功能接口发送 请求
url = f'https://c.***/soso/fcgi-bin/client_search_cp?p=1&n=10&w={name}'
response = requests.get(url)
# print(response)
# 2. 获取数据 获取所有歌曲信息数据
json_str = response.text
# 3. 解析数据 歌曲 歌手名 专辑 歌曲mid(用来下载歌曲必须要的参数)
json_str = json_str[9: -1]
json_dict = json.loads(json_str)
song_list = json_dict['data']['song']['list']
tb = pt.PrettyTable()
tb.field_names = ['序号', '歌名', '歌手', '专辑']
music_info_list = []
count = 0
# 4. 格式化输出
for song in song_list:songname = song['songname']songmid = song['songmid']singer = song['singer'][0]['name']albumname = song['albumname']tb.add_row([count, songname, singer, albumname])music_info_list.append([songmid, songname, singer])count += 1
print(tb)while True:input_index = eval(input('请输入你要下载的歌曲序号(-1)退出:'))if input_index == -1:breakdownload_info = music_info_list[input_index]songmid = download_info[0]# 1. 通过获取的歌曲mid 拼接 需要的音乐urlmusic_info_url = 'https://u.***/cgi-bin/musicu.fcg?data={"req":{"module":"CDN.SrfCdnDispatchServer","method":"GetCdnDispatch", "filename":"M800","param":{"guid":"8846039534","calltype":0,"userip":""}},"req_0":{"module":"vkey.GetVkeyServer","method":"CgiGetVkey","filename":"M800","param":{"guid":"8846039534","songmid":["%s"],"songtype":[0],"uin":"1152921504784213523","loginflag":1,"platform":"20"}},"comm":{"uin":"1152921504784213523","format":"json","ct":24,"cv":0}}' % songmid# print(music_info_url)# 2. 发送网络请求 需要的音乐urljson_data = requests.get(url=music_info_url, headers=headers).json()# 3. 获取数据 获取 里面生成的 部分音乐链接 合并 (mp3 数据所在的链接了)purl = json_data['req_0']['data']['midurlinfo'][0]['purl']media_url = 'https://dl.stream.qqmusic.qq.com/' + purl# 4. 发送请求 (mp3 数据所在的链接了)# 5. 获取数据 音乐二进制数据music_data = requests.get(media_url).content# 6. 保存数据with open(f'歌曲下载/{download_info[1]}-{download_info[2]}.mp3', mode='wb') as f:f.write(music_data)print(f'{download_info[1]}, 下载完成!')
尾话
好啦,这篇文章就到这里啦~对你有帮助就点赞收藏一下吧!
python:想要什么资源,直接上去莽就完事了~相关推荐
- 只需十四步:从零开始掌握 Python 机器学习(附资源)
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
- 从零开始掌握Python机器学习(附资源)
从零开始掌握Python机器学习(附资源) 机器之心 2017-03-14 14:29 选自kdnuggets 作者:Matthew Mayo Python 可以说是现在最流行的机器学习语言,而且你也 ...
- 教你使用Python爬虫获取电子书资源实战!喜欢学习的小伙伴过来看啦!
最近在学习Python,相对java来说python简单易学.语法简单,工具丰富,开箱即用,适用面广做全栈开发那是极好的,对于小型应用的开发,虽然运行效率慢点,但开发效率极高.大大提高了咱们的生产力. ...
- 想要的资源百度搜不到?6个只有老师傅才知道的网站,悄悄领走
总有些想要的资源,百度翻了几十页都找不到.怎么办呢?不妨试试下面这6个资源搜索网站,想要的资源几秒就能找到,让你大饱眼福. BT兔子 btrabbit.biz 号称是最快的磁力链接搜索引擎,实测了一下 ...
- python 整合_python的资源整合
Python基本安装: * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站: * http://www.activestate.co ...
- 你想要的资源我都有(2)
关注博主,持续更新 在这里,博主给大家分享一些在大学学习过程中经常使用的网站或者平台,希望有助于各位的学习和工作! 1.中国大学MOOC(慕课)_国家精品课程在线学习平台 https://kaoyan ...
- 博学谷python_2020年最新博学谷Python基础班,资源教程下载
课程名称 2020年最新博学谷Python基础班,资源教程下载 课程目录 day01 01-开班介绍 02-计算机组成原理 03-python介绍 04-python第一个程序 05-注释 06-注释 ...
- 如何快速找到自己想要的资源?
一.利用CSDN站内搜索 CSDN专门组建了自己的搜索团队,其目的就是为了方面大家能速搜索自己想要的资源:如果找不到资源,不妨来试一试.我要搜索资源. 二.指定通道反馈 CSDN的运营小伙伴也可以努力 ...
- 30个T的硬盘都不够装,你想要的资源都在这里
总是找不到自己想要的资源吗?看着空空如也的硬盘是不是心中总有一丝淡淡的失落呢?小编今天将分享几个资源满满的网站. 让你硬盘瞬间爆满,接下来就来看看吧. 一.一听音乐网一听音乐网是在线音乐网站,提供免费 ...
- 学习Python语言必备的资源 作者: ZDNET CHINA 特稿
Python是一种不但成熟而且功能也十分强大的面向对象程序设计语言.它的功能性现在已经可以与Java相媲美了.尽管Python有着这样或者那样的优点,但是它仍然面对着这样的一种现实:真正了解Pytho ...
最新文章
- 2022-2028年中国煤及褐煤行业发展现状及未来前景分析报告
- Stanford UFLDL教程 池化Pooling
- SAP S/4HANA表结构之变
- Spring的异步方法
- Cisco packet tracer6.0下的网络工程实训
- 移植U-BOOT之裁剪和修改默认参数(易用性)启动内核,以及对uboot进行分区
- hadoopsdk使用_Hadoop的一些基本操作
- keycloak mysql_keycloak搭配mysql
- php易宝支付扫码支付代码_谈谈扫码支付
- JavaScript 函数定义和调用
- 家用智能门锁常见的开锁方式
- python简单的计算方法_用python实现简单的有限元方法(二)
- 为CMUSphinx训练声学模型教程手册
- 刘兰芳评书app下载
- 「Vue实战」武装你的前端项目
- 博世XC事业部李胤:自动驾驶降温不意外,但这条路肯定会走下去
- python中计算梯度值
- 春秋战国时期灭了三个国家的陈国女人
- 索尼相机摄像机断电MP4视频无XML文件数据恢复修复方法
- (附源码)Springboot 点餐系统 毕业设计 100908
热门文章
分享一篇来自机器之心的文章.关于机器学习的起步,讲的还是很清楚的.原文链接在:只需十四步:从零开始掌握Python机器学习(附资源) Python 可以说是现在最流行的机器学习语言,而且你也能在网上找 ...
从零开始掌握Python机器学习(附资源) 机器之心 2017-03-14 14:29 选自kdnuggets 作者:Matthew Mayo Python 可以说是现在最流行的机器学习语言,而且你也 ...
最近在学习Python,相对java来说python简单易学.语法简单,工具丰富,开箱即用,适用面广做全栈开发那是极好的,对于小型应用的开发,虽然运行效率慢点,但开发效率极高.大大提高了咱们的生产力. ...
总有些想要的资源,百度翻了几十页都找不到.怎么办呢?不妨试试下面这6个资源搜索网站,想要的资源几秒就能找到,让你大饱眼福. BT兔子 btrabbit.biz 号称是最快的磁力链接搜索引擎,实测了一下 ...
Python基本安装: * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站: * http://www.activestate.co ...
关注博主,持续更新 在这里,博主给大家分享一些在大学学习过程中经常使用的网站或者平台,希望有助于各位的学习和工作! 1.中国大学MOOC(慕课)_国家精品课程在线学习平台 https://kaoyan ...
课程名称 2020年最新博学谷Python基础班,资源教程下载 课程目录 day01 01-开班介绍 02-计算机组成原理 03-python介绍 04-python第一个程序 05-注释 06-注释 ...
一.利用CSDN站内搜索 CSDN专门组建了自己的搜索团队,其目的就是为了方面大家能速搜索自己想要的资源:如果找不到资源,不妨来试一试.我要搜索资源. 二.指定通道反馈 CSDN的运营小伙伴也可以努力 ...
总是找不到自己想要的资源吗?看着空空如也的硬盘是不是心中总有一丝淡淡的失落呢?小编今天将分享几个资源满满的网站. 让你硬盘瞬间爆满,接下来就来看看吧. 一.一听音乐网一听音乐网是在线音乐网站,提供免费 ...
Python是一种不但成熟而且功能也十分强大的面向对象程序设计语言.它的功能性现在已经可以与Java相媲美了.尽管Python有着这样或者那样的优点,但是它仍然面对着这样的一种现实:真正了解Pytho ...