获取网易云音乐

 网页版音乐播放器api接口文档(网易云音乐提供)

接口原文链接:网页版音乐播放器api接口文档(网易云音乐提供) - 简书

获取音乐url

说明 : 使用歌单详情接口后 , 能得到的音乐的 id, 但不能得到的音乐 url, 调用此接口 , 传入的音乐 id( 可多个 , 用逗号隔开 ), 可以获取对应的音乐的 url( 不需要登录 )

: 部分用户反馈获取的 url 会 403,hwaphon找到的 解决方案是当获取到音乐的 id 后,将 https://music.163.com/song/media/outer/url?id=id.mp3 以 src 赋予 Audio 即可播放

必选参数 : id : 音乐 id

可选参数 : br: 码率,默认设置了 999000 即最大码率,如果要 320k 则可设置为 320000,其他类推

接口地址 : /song/url

调用例子 : /song/url?id=33894312 /song/url?id=405998841,33894312

获取代码


import requests # 数据请求模块 第三方
import re # 正则表达式模块 内置
import os # 文件操作模块

filename = 'music\\'

if not os.path.exists(filename): # 如果不存在这个文件夹,则创建它
    os.mkdir(filename)

# 如果想要爬取其他榜单的歌曲内容,只需要更改url中的id
url = 'https://music.163.com/discover/toplist?id=3779629'
# 请求头headers 就是用伪装python代码 把python代码伪装成浏览器对于服务器发送请求
# 服务器接收到请求后,会返回响应数response
headers = {
    # 浏览器的基本信息
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36 Edg/98.0.1108.62'
}
response = requests.get(url=url,headers=headers)
# print(response.text) # 获取网页源代码
html_data = re.findall('<li><a href="/song\?id=(\d+)">(.*?)</a>',response.text)
# 正则表达式提取出来的一个内容 返回的是列表 里面的每一个元素都是元组
# print(html_data)

for num_id,num_name in html_data:
    # 网易云音乐的接口
    music_url = f'https://music.163.com/song/media/outer/url?id={num_id}.mp3'
    # 对于音乐播放器地址发送请求,获取二进制数据内容
    music_content = requests.get(url=music_url,headers=headers).content
    # 保存 mode = 保存方式wb 二进制
    with open(filename+num_name+'.mp3',mode='wb') as f:
        f.write(music_content)
    print(num_id,num_name)

本篇仅供本人学习参考

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值