Python爬取QQ付费音乐

Python爬取QQ付费音乐

QQ音乐的接口找了好久,并且每个链接附带的无关参数还很多,分析接口分析的头大啊,好不容易弄出来了暂时先能下载,以后再扩展功能。

首先分析URL的参数

歌曲的地址:https://y.qq.com/n/yqq/song/002YYV7g0FlXAp.html
-w1245
打开开发者调试工具:分析里面提交的参数。

我们要获取这个歌曲的mid参数。其实一开始我并不知道要获取这个参数来加密,坑爹的在后面。。。。。

获取加密的url地址

点击音乐的播放按钮:其中最坑的是这个加密的接口,只在第一次添加的时候才会出现,你删除再添加同一首音乐他就不会出来。。。


接下来是分析头参数:

获取播放音乐的地址


访问界面:

����正着分析接口和思路方法很明确,我一开始是找到了url音乐播放地址,然后就是分析里面的参数,对比播放几个音乐后,发现vkey是加密的参数,其他的参数是常量,然后就分析加密vkey的url,再其次就是分析vkey里面的参数。思路就这样仅供参考。
贴上代码:自己将url里面的参数删除了不少没用的参数。
接下来再添加其他的功能吧。

import requests
import json
input_url = input('输入URL:')
params = input_url[input_url.rindex('/')+1:input_url.rindex('.')]
url = 'https://c.y.qq.com/base/fcgi-bin/fcg_music_express_mobile3.fcg?&jsonpCallback=MusicJsonCallback&cid=205361747&songmid='+params+'&filename=C400'+params+'.m4a&guid=9082027038'
response = requests.get(url)    # 访问加密的网址
response = json.loads(response.text)
vkey = response['data']['items'][0]['vkey'] # 加密的参数
music_url = 'http://dl.stream.qqmusic.qq.com/C400'+params+'.m4a?vkey='+vkey+'&guid=9082027038&uin=0&fromtag=66'
response = requests.get(url=music_url, stream=True)
with open('new_music.mp3', 'wb') as f:
    for chunk in response.iter_content(1024):
        f.write(chunk)

猜你喜欢

转载自blog.csdn.net/qq_1290259791/article/details/81074157