如何知道爬虫 token 是如何计算的?

2018-10-31 06:13:00 +08:00
 tz1006
我在一个机票网站上爬数据,自从被发现后,该网站把 timestamp 改动了一下,相当于变相的 token 验证。
1. 我如何才能知道这个 timestamp 的生成方式? Chrome 控制台可以找出,或者看到函数的生成记录吗?
2. JS 经过混淆,我怎样才能从一堆看不懂的字符中找到自己想要的东西?

希望有大神给予指导。
3007 次点击
所在节点    Python
10 条回复
PulpFunction
2018-10-31 08:19:57 +08:00
1 服务器接收你的 get 之后,返回一串 cookie,可能通过 JS 加密

2 慢慢看
shuax
2018-10-31 08:25:31 +08:00
用 selenium,难得去分析 js
Leigg
2018-10-31 08:57:16 +08:00
前端上千 /万行 js 文件中一定有。
jy02201949
2018-10-31 09:28:52 +08:00
好像只能慢慢找了……
crawl3r
2018-10-31 09:34:02 +08:00
花钱找人弄
no1xsyzy
2018-10-31 09:42:10 +08:00
修改其 call 的函数为 function(){debugger;}从 call stack 里找
注意 DOM API call,等价替换
t6attack
2018-10-31 09:49:05 +08:00
万能方案是模拟浏览器,相当于每次把 js 执行一遍,所以效率会大减。
wc110302
2018-10-31 13:50:51 +08:00
找到加密的 js 文件,找到关键函数,execJS 模拟运行,生成你要的 token
locoz
2018-10-31 15:39:04 +08:00
看了一下上面都没有说找加密函数的方法论,那我提两个吧。
1、chrome 的各种条件断点
2、全局搜索参数名
tz1006
2018-11-01 04:38:34 +08:00
@shuax selenium 我用过,太慢。如果多线程容易崩溃, 我还是想接入 api 十秒两千个结果。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/502821

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX