用python找到音乐数据的位置,并实现音乐下载

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取

需求分析:

有什么需求要实现? 这些需求可以用什么技术实现?

找到音乐数据的位置, 分析 不同音乐的链接有何规律?https://lx-sycdn.kuwo.cn/b784688662c82db8aea3ad04bbb01bdc/656dc4ad/resource/n1/78/40/2947728637.mp3https://lx-sycdn.kuwo.cn/382ee6a7e57aac60a159e73dee031ce6/656dc5d2/resource/n2/15/57/3738471511.mp3mid: 音乐idreqId: 请求idhttps://kuwo.cn/api/v1/www/music/playUrl?mid=321546471&type=music&httpsStatus=1&reqId=f904d451-92a0-11ee-88a7-cd556da794d5&plat=web_www&from=https://kuwo.cn/api/v1/www/music/playUrl?mid=321068515&type=music&httpsStatus=1&reqId=7b32f0b1-92a1-11ee-80fb-47c57d0b026e&plat=web_www&from=

实现批量采集

爬虫实现的基本流程和思路

  1. 发送请求(访问链接)

  2. 获取数据

  3. 解析数据

  4. 保存数据

简单反爬的处理方案

  • 添加请求头信息

  • cookie

  • referer

  • User-Agent

代码展示

导入模块

import requests     # 发送请求第三方库

反爬措施 伪装信息: 将爬虫代码伪装成一个普通的用户

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
headers = {# 身份信息(主要代表你现在是哪个用户)'Cookie': '_ga=GA1.2.1106834021.1675858131; Hm_lvt_cdb524f42f0ce19b169a8071123a4797=1701178796,1701264414,1701432331,1701692848; _gid=GA1.2.871820917.1701692848; Hm_lpvt_cdb524f42f0ce19b169a8071123a4797=1701693001; _ga_ETPBRPM9ML=GS1.2.1701692848.7.1.1701693001.44.0.0; Hm_Iuvt_cdb524f42f0cer9b268e4v7y735ewrq2324=A4nhbaBDkcGKR8T6QPH6JSwBSzz5be7b',# 防盗链'Referer': 'https://kuwo.cn/play_detail/321546471',# 服务端自定义校验参数, 服务器会校验这个参数'Secret': 'c2e09d2c27cd95a98def1bd080e7721f8ff4d4e40d4ebdf09372af38c62c540d03791677',# 设备信息, 代表你现在所用的设备'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/119.0.0.0 Safari/537.36'
}

请求链接

url = 'https://kuwo.cn/api/v1/www/music/playUrl?mid=321068515'
  1. 发送请求(访问链接)
response = requests.get(url, headers=headers)
  1. 获取数据

    • .text: 获取文本内容 (字符串数据)

    • .content: 获取二进制数据 (保存图片/音频/视频的时候使用)

    • .json(): 获取json数据 并转为字典 ({“”: “”,“”: “”,“”: “”,“”: “”})

    结构化数据: JSON数据

    非结构化数据: 网页源代码, 无规则的数据

json_data = response.json()
  1. 解析数据
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:926207505
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
# data > url
music_url = json_data['data']['url']
  1. 保存数据
music_data = requests.get(music_url).content
# mode='wb': 写入方式 以二进制的形式去覆盖写入数据
with open('冬天的秘密.mp3', mode='wb') as f:# 将音乐数据写入到 open('渣渣辉.mp3', mode='wb') 文件当中f.write(music_data)

尾语

最后感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA中Error与Exception的区别——面试

1.Error与Exception的区别: 相同点:Error(错误)和Exception(异常)都是Throwable类的子类 不同点: 1.Error表示VM无法解决或恢复困难的严重问题, 例如:OutOfMemoryError&a…

国产接口测试工具APIpost

说实话,了解APIpost是因为,我的所有接口相关的文章下,都有该APIpost水军的评论,无非就是APIpost是中文版的postman,有多么多么好用,虽然咱也还不是什么啥网红,但是不知会一声就乱在评论区打广告…

Python如何传递任意数量的实参及什么是返回值

Python如何传递任意数量的实参 传递任意数量的实参 形参前加一个 * ,Python会创建一个已形参为名的空元组,将所有收到的值都放到这个元组中: def make_pizza(*toppings):print("\nMaking a pizza with the following toppings: "…

acwing算法提高之动态规划--最长上升子序列模型(下)

目录 1 基础知识2 模板3 工程化 1 基础知识 暂无。。。 2 模板 暂无。。。 3 工程化 题目1:拦截导弹。给你N个数,第(1)问求最长下降子序列,第(2)问求需要多少个下降序列才能把所有元素覆盖…

Retrofit的转换器

一、前言 1.为什么要使用Retrofit转换器 在我们接受到服务器的响应后,目前无论是OkHttp还是Retrofit都只能接收到String字符串类型的数据,在实际开发中,我们经常需要对字符串进行解析将其转变为一个JavaBean对象,比如服务器响应…

Codeforces Round 913 (Div. 3)(A~G)

1、编程模拟 2、栈模拟 3、找规律?(从终止状态思考) 4、二分 5、找规律,数学题 6、贪心(思维题) 7、基环树 A - Rook 题意: 直接模拟 // Problem: A. Rook // Contest: Codeforces - C…

Kotlin Lambda使用

Kotlin Lambda使用 fun main() /*: Unit*/ {// Lambda会慢慢的难度升级// Kotlin Unit Java void// TODO 下面全部都是函数声明, 既然是函数声明,就不能调用// 函数的声明 用lambda去描述函数的声明val method1 : () -> Unitval method2 : (Int, In…

火焰图的基本认识与绘制方法

火焰图的认识与使用-目录 火焰图的基本认识火焰图有以下特征(on-cpu)火焰图能做什么火焰图类型On-CPU 火焰图和Off-CPU火焰图的使用场景火焰图分析技巧 如何绘制火焰图生成火焰图的流程1.生成火焰图的三个步骤 安装火焰图必备工具1.安装火焰图FlameGraph脚本2.安装火焰图数据采…

智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于人工水母算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.人工水母算法4.实验参数设定5.算法结果6.参考…

4 STM32MP1 Linux系统启动过程

1. ROM代码 这是ST官方写的代码,在STM32MP1出厂时就已经烧录进去,不能被修改。ROM代码是上电以后首先执行的程序,它的主要工作就是读取STM32MP1的BOOT引脚电平,然后根据电平来判断当前启动设备,最后从选定的启动设备里…

快速认识,后端王者语言:Java

Java作为最热门的开发语言之一,长居各类排行榜的前三。所以,就算你目前不是用Java开发,你应该了解Java语言的特点,能用来做什么,以备不时之需。 Java 是一种高级、多范式编程语言,以其编译为独立于平台的字…

快手数仓面试题附答案

题目 1 讲一下你门公司的大数据项目架构?2 你在工作中都负责哪一部分3 spark提交一个程序的整体执行流程4 spark常用算子列几个,6到8个吧5 transformation跟action算子的区别6 map和flatmap算子的区别7 自定义udf,udtf,udaf讲一下…

Java链接数据库

本文介绍的是Java链接数据库中的JDBC操作,JDBC虽然现在用的不多,但面试的时候会问道。需要有相应的了解。下面以链接MySQL为例子。 JDBC 什么jdbc Java DataBase Connectivity是一种用于执行SQL语句的Java API,它由一组用Java语言编写的类和…

初识Protobuf与Protobuf的安装

目录 一、Protobuf 1.回顾序列化 2.Protobuf的特性 3.Protobuf的下载 ①ProtoBuf 在 window 下的安装 ②ProtoBuf 在 Linux 下的安装 一、Protobuf 1.回顾序列化 我们在先前的学习中也遇到过序列化。所谓序列化我的理解是,将复杂的对象以特定的方式转换以便于…

【计算机网络笔记】物理层——信道与信道容量

系列文章目录 什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)…

【稳定检索|投稿优惠】2024年光电信息与机器人发展国际会议(ICOIRD 2024)

2024年光电信息与机器人发展国际会议(ICOIRD 2024) 2024 International Conference on Optoelectronic Information and Robot Development(ICOIRD 2024) 一、【会议简介】 信息技术与人工智能的浪潮正在激荡,不断刷新我们生活的页面,深刻烙印在光电信息…

Homework 3: Higher-Order Functions, Self Reference, Recursion, Tree Recursion

Q1: Compose 编写一个高阶函数composer,它返回两个函数func和func_adder。 func是一个单参数函数,它应用到目前为止已经组合的所有函数。这些函数将首先应用最新的函数(参见doctests和示例)。 func_adder用于向我们的组合添加更多…

虚拟局域网(VLAN)解析(Virtual Local Area Network)(用于在不受物理位置限制的情况下将设备划分到同一网络或不同网络)

文章目录 虚拟局域网(VLAN)解析1. VLAN简介2. VLAN工作原理3. VLAN类型1. 静态VLAN2. 动态VLAN 4. VLAN优点提高安全性降低网络拥堵更简单的管理 5. 如何配置VLAN1. 进入全局配置模式2. 创建VLAN并命名3. 将端口分配给VLAN4. 验证VLAN配置 6. 常见问题与…

“快慢指针”思想在物理或者逻辑循环中的应用

1 基础概念 1.1 什么是物理循环和逻辑循环? 物理循环是指物理索引访问顺序上相邻,逻辑上也相邻,比如循环链表,逻辑循环则指物理的索引上不一定相邻 1.2 快慢指针本质上可以解决逻辑循环问题,而物理循环也属于逻辑循…

用AI在抖音直播做姓氏头像的全新玩法,详细分析制作教程

前段时间在圈子里给大家分享了用AI写艺术字做小红书账号案例玩法,同学们都比较热衷学习。纷纷动手实践。 事实上用AI艺术字变现玩法还有许多。 例如上周末在星球给圈友们分享的一个AI艺术字直播的抖音账号,直播内容形式很简单,就是展现用AI…