前言:随着快节奏的生活状况,音乐成为人们必不可少的“伴侣”,但版权的兴起,对三无的我来说,即尊崇又难受。也许屏幕前的you不在乎,只想一心搞技术,那就整起撒!
一:找到需要下载收费的歌曲:
随便来一首dj 在客户端上显示下载需要开通vip,不要方,就这是我们希望的!
二:打开网页版的酷狗音乐 搜索这首dj:
三:直接F12 然后刷新 就愉快的找文件咯:
找到下图的文件,查看它的响应包,里面有一个.mp3的url 这就是我们好听的音乐了!
https://webfs.yun.kugou.com/202106161746/8722f93d12be1468f9d1e748eb89c372/KGTX/CLTX001/27722cfbc669f8cda04a6413671f9c87.mp3
打开后就可以另存为了,呵呵就这!直呼有手就行啊!
四:贴代码: 每一步标有注释,细看!在文本与json转化中稍许有些麻烦!
其中没有用正侧,因为其不变,采用简单暴力 直接截取就完成!
# -*- coding: utf-8 -*-
import requests
import json
import os
def get_mp3():
play_url = input("[***]请输入酷狗播放链接:")
# 对播放链接截取的第一段
play_url_intercept_1 = play_url[33:65]
# 对播放链接截取的第二段
play_url_intercept_2 = play_url[75:]
# 合成过滤消息头的url
url = 'https://wwwapi.kugou.com/yy/index.php?r=play/getdata&callback=jQuery19109016032522568235_1609768307593&hash=' + play_url_intercept_1 + '&dfid=0QqplI0WZxot12pqVh08WTx7&mid=e3a0e7839e40cf5a59a03b06b05fda0e&platid=4&album_id=' + play_url_intercept_2
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0'}
response = requests.get(url,headers=headers).text
# 将json字典转为json字符串 (不然打印不出来)
json_dumps = json.dumps(response)
# 去掉json字符串的前缀 后缀
remove_prefix = json_dumps[42:][:-3]
# 去掉json字符串的多余斜杠
remove = eval("'{}'".format(remove_prefix))
# 将json字符串转为json字典
json_loads = json.loads(remove)
# 找到播放源链接
mp3_url = json_loads["data"]['play_url']
# 找到歌曲的名字
mp3_name = json_loads["data"]["audio_name"]
# 得到MP3歌曲的二进制文件
mp3_content = requests.get(url=mp3_url, headers=headers).content
# 储存
if not os.path.exists('./酷狗音乐'):
os.mkdir('./酷狗音乐')
# 储存歌曲
with open('./酷狗音乐/' + mp3_name + '.mp3', 'wb') as fp:
fp.write(mp3_content)
print("[***]歌曲下载完成")
if __name__ == '__main__':
get_mp3()
客官,是否满意喃?给小二点个赞可否?
继续努力学习!