一、今日目标
某新闻板块,往下拉,会自动加载新闻内容,然后数据全部在一个feed包里面,这个数据包提交的参数里面有个_signature值是加密的,这就是我们今天要分析的内容_signature
二、开始分析
1、全局搜索_signature
2、在关键处下断,刷新页面,断了下来,主要代码如下
var n = I(F.getUri(e), e)
3、进入I函数进行分析
4、单步调试,最后发现返回值为a.call(n,o)就是我们要找的数据,a=n.sign,n=window.byted_acrawler,所以最后调用的函数是window.byted_acrawler.sign(o)
其中
o={url:'https://www.toutiao.com/api/pc/list/feed?offset=0&channel_id=94349549395&max_behot_time=0&category=pc_profile_channel&disable_raw_data=true&aid=24&app_name=toutiao_web'}
5、开始分析sign函数,e.y始终大于1的,所以最后要分析的是下面的代码
K(b, e.c, e.l, f, e.z, this, null, 0)
6、进入到K函数所在js文件,发现代码不是很长,所以全部复制出来,并保存一个新建的js文件
7、新建一个html文件,调用上面的js文件,然后在调用sign函数,传入参数,得到如下值,可以说明该加密文件是可以用的,下节继续讲解如何补环境实现。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="test.js"></script> </head> <body> </body> </html>