网易云解参数(获取网易云歌词,获取评论同理)

内容纲要

真正日常使用只需要输入4行,修改两行,很简单

原视频(p46-p52):

 

代码部分

以下代码基于上面的视频:(视频内为获取网易云评论, 此代码也是)

#params_encSecKey.py
#视频参考:https://www.bilibili.com/video/BV1i54y1h75W?p=48
import requests
import random
import json
from Crypto.Cipher import AES
from base64 import b64encode

class Netease_params(object):
    def __init__(self, data):
        #字典要成字符串(json)再加密
        self.data = data

        #服务于d的
        self.e = '010001'
        self.f = '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7'
        self.g = '0CoJUm6Qyw8W8jud'
        self.i = 'vlgPRPyGhwA6F4Sq' #手动固定的 =》网页是随机的

    def set_user_agent(self):
        USER_AGENTS = [
            "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 2.0.50727; Media Center PC 6.0)",
            "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET CLR 1.0.3705; .NET CLR 1.1.4322)",
            "Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30)",
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN) AppleWebKit/523.15 (KHTML, like Gecko, Safari/419.3) Arora/0.3 (Change: 287 c9dfb30)",
            "Mozilla/5.0 (X11; U; Linux; en-US) AppleWebKit/527+ (KHTML, like Gecko, Safari/419.3) Arora/0.6",
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1",
            "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9) Gecko/20080705 Firefox/3.0 Kapiko/3.0",
            "Mozilla/5.0 (X11; Linux i686; U;) Gecko/20070322 Kazehakase/0.4.5"
        ]
        user_agent = random.choice(USER_AGENTS)
        return user_agent

    def get_encSecKey(self):
        return "6ea19f618d09893013feb207e6953ab0d04831ccf86095147970745a825a0f3288ad0bfdb802ffd5876394599d179b65785e679b23ae38035d476872f5270c26f7e15f0e2de0da92ac7fdd1de6a965642a67707d3b204d48a3a3c66fe536c9e2056d2032c884d764cf419e8ce7bd245f56bde140deccbaed83995285ee66ccda"

    #转换成16的倍数
    def to_16(self, data):
        pad = 16 -len(data) % 16
        data += chr(pad) * pad
        return data

    def enc_params(self, data, key):
        #加密过程
        iv = "0102030405060708"
        data = self.to_16(data) #加密的内容必须是16的倍数
        aes = AES.new(key=key.encode("utf-8"), IV=iv.encode("utf-8"), mode=AES.MODE_CBC) #创建加密器
        bs = aes.encrypt(data.encode("utf-8")) #加密
        return str(b64encode(bs), "utf-8") #转成字符串,这个bs不能直接decode,要先转成b64
    
    #数据加密两次
    def get_params(self, data):
        first = self.enc_params(data, self.g)
        secend = self.enc_params(first, self.i)
        return secend

    
    def run(self, url):
        data = {
        'params': self.get_params(json.dumps(self.data)),
        'encSecKey':self.get_encSecKey()
    }
        headers = {'User-Agent':self.set_user_agent()}
        response = requests.post(url, data=data, headers=headers).json()
        #print(response)
        return response

if __name__ == '__main__':
    url = 'https://music.163.com/weapi/song/lyric?csrf_token='
    data = {
            'csrf_token': "",
            'id': "1398764652",
            'lv': '-1',
            'tv': '-1'
        }
    wyy = Netease_params(data)
    wyy.run(url)

 

下面是参数方法获取

此处为歌词的data,csrf_token可以空

 

 

下面是网易云评论的获取方式:

打开任意一首歌曲(演示https://music.163.com/#/song?id=1398764652 )

按F12,找到响应内容为评论的请求

此处的url就是后面要使用的url

 

按顺序点击

 

格式化一下

 

在此处添加断点

 

按F5刷新

 

按”1“处,直到”2”处的链接为评论的请求url(rid,threadId最后面的数字为歌曲id)

把方框内的拷贝到data里面,并修改为字典的格式(注意csrf_token可以空,全部的内容都为字符串)

Tip:

1.其中url和data的获取过程请参考上面的步骤,如果看不懂,请参考最上方的视频

2.使用方法参考最下方的 if __name__ == '__main__' 部分,此处为四行, 只需要修改url和data就可以获取不同的信息

 

版权声明:
作者:bandao
链接:https://www.bandao.ltd/coding/python/params_encseckey/
来源:个人学习分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录