2020年最新解决某音signature参数方法

由于在之前做过国外版抖音,即tiktok,于是结合之前做过tiktok的经历,知道抖音就有一个signature加密,

之前解决方案https://github.com/loadchange/amemv-crawler
现在发现抖音多了一个参数tac,tac能直接在网页中取到,
用户页面能取到
将tac值传入js中,发现运行错误,而放在html中运行则正常,查资料后发现是在js中没有window对象,于是在js中将tac定义为global对象,结果运行报错。照理说应该都是一样的啊!!!!!
于是便尝试了python一些js执行库如pyexecjs,结果都是这样:不加tac运行参数错误,而加入tac值后运行报错。在HTML运行是加入tac值后,运行结果是固定的,而在node等运行时结果是不同的,应是有根据时间生成参数值,而在tac值中就有时间。
加入tac并设置为全局变量后
于是便觉得是必须要使用浏览器运行才是正确的,辗转之后试了一下phantomjs运行,发现与正确的参数值大致相同,只有中间几位数与后面一位数不同,但是使用这个参数无法请求成功。无奈选择使用selenium尝试,结果运行结果与使用phantomjs运行结果都是有几个字母不同。这是在js中有特征值识别,在运行加密js之前将window.navigator.webdriver设置为undefined,结果正常手动打开网页都得到错误的加密值。
考虑到selenum有太多特征可以被识别,于是便找到了pyppeteer这一神器。在一顿操作后,发现仍有正确的加密值有所不同,查资料后发现修改源码的方式
2020年最新解决某音signature参数方法_第1张图片
终于可以得到正确的加密值了
2020年最新解决某音signature参数方法_第2张图片
这里注意,一定不要设置成无头,不然也得不到正确的加密值
js在上面GitHub上就有,只需要做一点小更改

你可能感兴趣的:(2020年最新解决某音signature参数方法)