Python获取酷得music并下载,获得无限听

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

环境使用:

  • Python 3.8

  • Pycharm

模块使用:

  • requests >>> pip install requests

  • re

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

代码实现步骤 <基本四个步骤>

获取音ID:

  1. 发送请求, 模拟浏览器对于url地址发送请求

    url地址: 榜单页面url

  2. 获取数据, 获取 榜单页面 网页源代码

  3. 解析数据, 提取我们想要的音ID

获取音链接以及名字

  1. 发送请求, 模拟浏览器对于url地址发送请求

    url地址: 歌曲信息数据包链接 <需要传入音ID>

  2. 获取数据, 获取 歌曲信息数据包 数据内容

  3. 解析数据, 提取我们想要的歌链接 以及 歌名字

  4. 保存数据, 把歌保存到本地文件

代码展示

导入模块

# 导入数据请求模块
import requests
# 导入正则表达式模块
import re
# 导入进度条模块
from tqdm import tqdm

“”"

  1. 发送请求, 模拟浏览器 对于 url地址 发送请求

“”"
模拟浏览器 --> headers 请求头

headers = {
    # User-Agent 用户代理 表示浏览器基本身份信息
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36'
}

请求链接 榜单页面的url地址

url = 'https://*****/yy/rank/home/1-6666.html?from=rank'

发送请求

response = requests.get(url=url, headers=headers)

“”"

  1. 获取数据, 获取 榜单页面 网页源代码

  2. 解析数据, 提取我们想要的音乐ID

    re.findall(‘什么数据’, ‘什么地方’) --> 调用re模块里面findall方法 <找到所有我们想要的数据内容>
    告诉程序, 你要在什么地方, 去找什么数据

“”"
歌曲ID

music_id_list = re.findall('data-index="\d+" data-eid="(.*?)">', response.text)

for循环遍历

<相当于把盒子里面东西一个一个拿出来, 然后用music_id变量名接收数据> 列表数据容器 --> 装东西盒子

for music_id in music_id_list:

“”"

  1. 发送请求, 模拟浏览器对于url地址发送请求

    url地址: 歌曲信息数据包链接 <需要传入音乐ID>

“”"

    # f'{}' --> 字符串格式化的方法, 相当于插队<平移>
    link = f'https://****/yy/index.php?r=play/getdata&dfid=3x7wHk3au0aA4fBz6d1luNHw&appid=1014&mid=79ccf0ae0621ad3b03cebab6d7ef206d&platid=4&encode_album_audio_id={music_id}&_=1683548032595'
    # 发送请求
    response_1 = requests.get(url=link, headers=headers)

“”"

  1. 解析数据, 提取我们想要的歌曲链接 以及 歌曲名字

    字典取值 —> 键值对取值

    dict = {‘键’: ‘值’,‘键1’: ‘值1’}

    dict[‘键’]

    json字典数据, 提取一层一层提取

“”"

歌名

    title = response_1.json()['data']['audio_name']

歌链

    play_url = response_1.json()['data']['play_url']
    print(title, play_url)

“”"

  1. 保存数据, 保存到本地文件夹

    对于歌曲链接地址发送请求 然后获取二进制数据

    方式方法有很多, 可以选择你自己比较喜欢, 或者选择常用

“”"

获取歌曲内容

    content = requests.get(url=play_url, headers=headers).content
    # 'music\\'<文件夹路径相对路径> + title<文件名> + '.mp3'<文件格式>  mode='wb' 保存方式
    with open('music\\' + title + '.mp3', mode='wb') as f:
        # 写入内容
        f.write(content)

经典报错:

  1. requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

    报错原因: 获取的数据不是完整json数据格式

    解决: 删掉链接中callback参数

  2. KeyError: ‘audio_name’

    报错原因: 没有这个键

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、更多资源、疑惑解答直接点击下方名片自取即可。

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/21163.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

springCloud使用maven

springCloud项目使用maven集成nexus 一&#xff1a;故事背景二&#xff1a;基础概念2.1 什么是Maven2.2 什么是nexus 三&#xff1a;实操3.1 setting文件配置3.2 项目内pom.xml配置3.3 jar上传3.3.1 maven插件上传3.3.2 mvn命令上传3.3.3 页面上传3.3.4 通过Rest的方式进行上传…

麻了,真的不想做测试了...

前言 有不少技术友在测试群里讨论&#xff0c;近期的面试越来越难了&#xff0c;要背的八股文越来越多了,考察得越来越细&#xff0c;越来越底层&#xff0c;明摆着就是想让我们徒手造航母嘛&#xff01;实在是太为难我们这些测试工程师了。 这不&#xff0c;为了帮大家节约时…

今年这情况,大家多一手准备吧......

大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;又得准备面试了&#xff0c;不知道从何下手&#xff01; 不论是跳槽涨薪&#xff0c;还是学习提升&#xff01;先给自己定一个小目标&#xff0c;然后再朝着目标去努力就完事儿了&#xff01; 为了帮大家节约时间&a…

Jmeter +Maven+jenkins 接口性能全自动化测试

背景&#xff1a; 首先用jmeter录制或者书写性能测试的脚本&#xff0c;用maven添加相关依赖&#xff0c;把性能测试的代码提交到github&#xff0c;在jenkins配置git下载性能测试的代码&#xff0c;配置运行脚本和测试报告&#xff0c;配置运行失败自动发邮件通知&#xff0c…

桂院校园导航小程序 云开发项目 二次开发教程 1.0.1

Gitee代码仓库&#xff1a;桂院校园导航小程序 GitHub代码仓库&#xff1a;GLU-Guide 先 假装 大伙都成功安装了云开发项目&#xff0c;并能在 微信开发者工具 和 手机 上正确运行。 接着就是 将项目 改成自己的学校。 代码里的注释我就不说明了&#xff0c;有提到 我的学校…

【实践篇】教你玩转JWT认证---从一个优惠券聊起 | 京东云技术团队

引言 最近面试过程中&#xff0c;无意中跟候选人聊到了JWT相关的东西&#xff0c;也就联想到我自己关于JWT落地过的那些项目。 关于JWT&#xff0c;可以说是分布式系统下的一个利器&#xff0c;我在我的很多项目实践中&#xff0c;认证系统的第一选择都是JWT。它的优势会让你…

Java版spring cloud 企业工程项目管理系统平台源码(三控:进度组织、质量安全、预算资金成本、二平台:招采、设计管理)

工程项目管理软件&#xff08;工程项目管理系统&#xff09;对建设工程项目管理组织建设、项目策划决策、规划设计、施工建设到竣工交付、总结评估、运维运营&#xff0c;全过程、全方位的对项目进行综合管理 工程项目各模块及其功能点清单 一、系统管理 1、数据字典&#…

API接口设计方案

API&#xff08;Application Programming Interface&#xff09;接口是一种用于与应用程序进行交互的标准化接口&#xff0c;它允许第三方应用程序通过网络调用应用程序的功能。设计API接口是开发人员在开发软件系统时的重要任务之一&#xff0c;因为API接口的质量和易用性直接…

Docker部署apache superset

使用Docker compose在docker中部署Apache Superset 说明&#xff1a;部署步骤按照superset官网说明总结而来-2023年 1、第一步安装docker 、docker compose。 这里我选择手动下载rpm包&#xff0c;然后yum install *.rpm方式来安装。 下载地址&#xff1a;https://download.…

Dart整理笔记 | Dart参考手册

Dart SDK 安装 如果是使用Flutter 开发&#xff0c;Flutter SDK自带&#xff0c;无需单独安装Dart SDK。 如果需要独立调试运行Dart代码&#xff0c;需要独立安装Dart SDK。 官方文档&#xff1a;https://dart.dev/get-dart windows(推荐): http://www.gekorm.com/dart-wind…

行云流水| CI 3.0 云原生构建全新上线

研发过程中&#xff0c;如何直观且准确地获悉代码提交后的质量状态&#xff1f; 引入持续集成&#xff0c;可以自动化的对代码进行代码检查、单元测试、编译构建、甚至部署与发布&#xff0c;大幅提升开发人员的效率。 腾讯云 CODING 推出 CI 3.0 ——云原生构建&#xff0c;是…

win下C++部署深度学习模型之clion配置pytorch+opencv教程记录

win下clion配置pytorch和OpenCV 一、clion配置vs编译器以及测试二、clion配置pytorch2.1、下载libtorch2. 2、环境变量配置2.3、cmakelist.txt编写2.4、main函数测试运行 三、clion配置opencv3.1、源码下载3.2、编译3.3、环境变量配置3.4、cmakelist.txt编写3.5 main函数测试运…

【密码产品篇】动态口令系统密钥体系结构(SM3、SM4)

【密码产品篇】动态口令系统密钥体系结构&#xff08;SM3、SM4&#xff09; 动态口令是一种一次性口令机制&#xff0c;用户无须记忆口令&#xff0c;也无须手工更改口令。口令通过用户持有的客户端器件生成&#xff0c;并基于一定的算法与服务端形成同步&#xff0c;从而作为…

oracle 学习之 unpivot/pivot函数及hive实现该功能

Oracle中pivot函数详解_实泽有之&#xff0c;无泽虚之的博客-CSDN博客pivot函数格式&#xff1a;pivot(聚合函数 for 需要转为列的字段名 in(需要转为列的字段值))&#xff1b;pivot函数说明&#xff1a;实现将指定字段的值转换为列的效果。https://blog.csdn.net/qq_40018576/…

Win11的两个实用技巧系列之关闭分屏模式方法

怎么关闭Win11电脑分屏模式?Win11关闭分屏模式方法 有用户在使用电脑的时候不小心开启了电脑的分屏模式&#xff0c;导致自己无法正常的进行电脑操作了&#xff0c;本文就为大家带来了Win11关闭分屏模式方法&#xff0c;一起看看吧 Win11电脑分屏模式怎么关闭&#xff1f;有用…

千万不要乱操作了!医院机房这么做真高级

各类中心数据机房广泛分布于银行、库房、交通、电信、医院、教育等行业。系统故障和人为操作不当可能导致各种业务中断或数据丢失&#xff0c;进而影响企业业务的停滞和运行。 医院管理3大难题和挑战 01.缺乏预警、告警机制 医院在使用自动化监控系统之前&#xff0c;主要靠人…

【JVM】1. JVM与Java体系结构

文章目录 1.1. 前言&#x1f349;1.2. 参考书目&#x1f349;1.3. Java及JVM简介&#x1f349;1.4. Java发展的重大事件&#x1f349;1.5. 虚拟机与Java虚拟机&#x1f349;1.6. JVM的整体结构&#x1f349;1.7. Java代码执行流程&#x1f349;1.8. JVM的架构模型&#x1f349;…

MongoDB 查询文档中使用正则选择器($regex)

之前我们介绍过使用文本选择器&#xff08;$text&#xff09;查询文档&#xff0c;如果您需要进一步了解&#xff0c;可以参考&#xff1a; MongoDB 查询文档中使用文本选择器&#xff08;$text&#xff09;https://blog.csdn.net/m1729339749/article/details/130605491 本篇…

进程概念

目录 冯诺依曼体系结构 操作系统OS 系统调用和库函数概念 进程 task_struct内容分类 组织进程 初识fork 进程状态 Z(zombie)-僵尸进程 孤儿进程 进程优先级 环境变量 和环境变量相关的命令 环境变量的组织方式 程序地址空间 冯诺依曼体系结构 关于冯诺依曼&…

制定进度计划是成功项目管理的必由之路

项目经理王斌接到一个新项目&#xff0c;与各项目干系人没有建立有效的联系&#xff0c;他们无法了解项目进展情况。甚至连项目团队的参与人员自身对项目整体情况也没有清楚的认识&#xff0c;而只管自己那一部分&#xff0c;整个开发过程完全是一种黑盒模式&#xff0c;项目组…