这几天爬网易云音乐的VIP歌曲来着,思路一个星期前就好了代码也早就写好了,直到现在猜跑起来,挺心烦的,一个报错让我搞了好几天,但是收获还是有的
AttributeError: 'bytes' object has no attribute 'encode'
这个后面说,先说正事
网易云音乐加密思路
1.生成一个16位的随机字符串
def make_random():
str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
random_str = ''
for i in range(16) :
index = random.randint(0, len(str) - 1)
random_str += str[index]
return random_str
2.AES加密两次生成params
3.RSA加密一次生成encSecKey
4.requests携带params和encSecKey俩个参数获取id列表或者歌曲下载url
AES加密
为什么是AES和RSA加密呢,我下一篇文章说,博客写好了补上链接
这是我当时的思路
注意事项
打印一下第一次加密的密文,是b’巴拉巴拉’,这说明是bytes类型的,
而传入的明文应该是str类型,所以要转码一下,`
fin_str1 = str(inti_str1,encoding='utf-8')
print(type(fin_str1))
>>>str
最后类型成了str类型,就okk了,要不会出现最前面的报错
import json