python爬取QQ音乐

import requests
import json

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36'
}

# 获取songmid
def getSongMid():
    number = int(input("请输入获取几首歌曲:"))
    name = input("请输入歌名或者歌手:")
    url = 'https://c.y.qq.com/soso/fcgi-bin/client_search_cp?p=1&n=%d&w=%s' %(number, name)
    res = requests.get(url=url, headers=headers)
    html = res.text
    h_dict = html[9:-1]
    h_dict = json.loads(h_dict)
    # 获取songmid
    need_info = []
    song_list = h_dict["data"]["song"]["list"]
    for song_info in song_list:
        songmid = song_info["songmid"]
        songname = song_info["songname"]
        # 通过元组装住
        need_info.append((songmid, songname))
    print("获取成功信息:", need_info)
    return need_info

# 获取purl
def getSongPurl(need_info):
    # guid,uin都是用户信息  guid 8182077584  uin 2848065047
    guid = input("请输入guid:")
    uin = input("请输入uin:")
    for song_info in need_info:
        songmid = song_info[0]
        songname = song_info[1]
    p_url = 'https://u.y.qq.com/cgi-bin/musicu.fcg?data={"req":{"param": {"guid": "%s"}}, "req_0": {"module": "vkey.GetVkeyServer", "method": "CgiGetVkey", "param": {"guid": "%s", "songmid": ["%s"], "uin": "%s"}}, "comm": {"uin": %s}}' %(guid, guid, songmid, uin, uin)
    response = requests.get(url=p_url, headers=headers)
    html = response.text
    keyjs = json.loads(html)
    purl = keyjs["req_0"]["data"]["midurlinfo"][0]["purl"]
    m4aUrl = "http://dl.stream.qqmusic.qq.com/"+purl
    print(m4aUrl)

if __name__ == '__main__':
    need_info = getSongMid()
    getSongPurl(need_info)

 运行结果:

 

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值