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

2023-12-13 03:50:49

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

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

需求分析:

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

找到音乐数据的位置, 分析 不同音乐的链接有何规律?

 https://lx-sycdn.kuwo.cn/b784688662c82db8aea3ad04bbb01bdc/656dc4ad/resource/n1/78/40/2947728637.mp3
 
 https://lx-sycdn.kuwo.cn/382ee6a7e57aac60a159e73dee031ce6/656dc5d2/resource/n2/15/57/3738471511.mp3

mid: 音乐id

reqId: 请求id

    https://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)

尾语

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

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

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

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

文章来源:https://blog.csdn.net/python56123/article/details/134810287
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。