需要登录后才可以进行搜索
某个时间点的搜索指数
拖动上面选择时间范围的功能 查看发出的请求
刷新页面让所有js文件全部加载
其中data可以看到应该是加密了的,all是表示全部数据,pc是指pc端,wise是移动端,这些可以在js文件里找到;首先先搞清楚这个像加密了的data是怎么解密的;我们现在知道这个数据是json格式,那么它处理肯定要从中取出这些data,所以,重新刷新一下网页,目的是为了让所有js都能加载出来,然后利用搜索功能从中找。搜索过程就不上图了,我是搜索 decrypt找到的;首先,我用decrypt找到了一个js文件,其中有一个名为decrypt的方法
这个js文件中有很多decrypt的搜索结果,在不知道多少行处找到了一个名为 fetchTrendIndexLive 的方法,这个方法名用我工地英语翻译为 获取趋势指数
下面调用了decrypt方法
找到decrypt打断点并刷新页面
想要知道这两个参数是什么很简单,回到Network看请求里的json;其中参数e是data,t参数是拿着uniqid请求获得得相应数据,
既然我们找到了加密data得函数,接下来就是解析data数据了
解析数据有两种方法:
1、读js代码通过python代码实现函数功能
2、利用execjs模块直接调用js函数得到我们想要得数据
# -*- coding: utf-8 -*- # @Time : 2019/10/11 10:27 # 通过反写js函数解析data参数 def decrypt(t,e): n = list(t) i = list(e) a = {} result = [] ln = int(len(n)/2) start = n[ln:] end = n[:ln] for j,k in zip(start,end): a.update({k:j}) for j in e: result.append(a.get(j)) return ''.join(result) print(decrypt(",LOZpxFG1THnh0w+.6854310%9-2,7","0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Gw1H0GZZH0F1GF0FxOx0G1GOh0GxHhG0wpZ10OhHw0p1OH0p1pp0xppH0FhHx0GH110FGOZ0hOFw0hHFF0h1Zp0GFh10GhHw0GG110G1p10HxG0ZFh0GhOO0Gpwx0GhOp0G1ZF0HxG0ZGO0wHF0whZ0wwh0OHF0wpO0OOZ0ppO0OxZ0OGx0w1O0O110O1H0hZpZ0GGhG0Zxp0pZF0pGF0OZH0OGp0whH0Zwx0wFp0OwO0OwF0OGH0OGG0pZH0pwx0pFx0p1O0xwG0xZw0pHF0p1Z0xZG0wZO0Ohp0pwO0OhG0O1p0Ohh0O1G0px10OxF0Op10OHF0pZO0pFZ"))
// 解析data的js函数 function decrypt(t, e) { for (var n = t.split(""), i = e.split(""), a = {}, r = [], o = 0; o < n.length / 2; o++) a[n[o]] = n[n.length / 2 + o]; for (var s = 0; s < e.length; s++) r.push(a[i[s]]); return r.join("") } // t = "ev-fxk9T8V1lwAL6,51348+.9270-%" // e = "k-kvk--v-flv-fkvke-v-w9vkklv-x1vkw-vkkkvkl-vkeVvk-Vvk-1v9k-v-99v-f9vkk-vkf1vkklvkxVvkwkvkl9vk-9vkVkv-1Vvkxwvkxxvkxwvk11"