03-百度翻译
百度翻译爬虫
分析
打开百度翻译
分析流程
将浏览器切换至手机端,这样查看请求的参数可能会较少,点击下图中的按钮:

查看请求接口

查看请求参数是否有变化
图一:

图二:

经过分析,我们发现这里有两个参数发生变化,经过推断,这里的参数可能是使用js生成的,所以我们这里要对接口进行分析,破解,得到这里的值
分析结果
--分析目标---
----分析结果-------------------
请求方式分析
POST
请求参数分析
参看请求参数分析
请求头分析
参看请求头分析
请求参数分析
参数KEY
分析结果
query
翻译单词(变化)
from
en(固定值不变)
to
zh(固定值不变)
token
6f5c83b84d69ad3633abdf18abcb030d(经过请求测试,我们发现可以为固定值)
sign
54706.276099
JS 逆向流程
注意: 在js逆向中,不是你要精通js才可以js逆向,你要懂一点js就可以做逆向,重要的逆向思维,对问题的思考方式
chrome 调试技巧
search 打开查询面板
查询面板可以通过关键字查找所有出现关键字地方的代码
点击跟踪代码并且可以把代码格式化
对格式化的代码进行设置断点
鼠标光标移动到上面可以查看当前运行代码变量值,函数原始代码地方等等
JS 逆向流程
通过关键词切入到代码中,切入到发送请求的代码行,通过请求的url中提取关键字
在发送请求的代码添加断点,并且触发发送请求,确认寻找的代码是否正确
往上逆向,寻找目标参数以及生成逻辑
利用js2py模拟执行生成逻辑获取想要的内容
根据逆向流程查找我们所需的js代码
搜索关键字

跟进代码,分析AJAX请求

查找我们需要的值

准确的找到我们需要的值

复制我们需要的js代码

代码如下:
编写爬虫代码
写代码之前,我们需要先了解一下
js2py这个模块js2py模块的使用我会放在主要教程中,接下来我们就不浪费时间了,直接开始。
注意
此时我们运行代码会报错误,会讲我们缺少
r的值
解决办法:回到浏览器,我们查找
r的值,并将生成r的值的函数,加入到我们之前创建的js文件中,放在G函数的上面

生成r的代码,如下所示
我们重新运行代码,发现又会遇到一个错误,说是缺少
i的值,所以我们的解决办法还是,继续进行js逆向,查找i的值逆向分析
我们回到
function a()中,找到需要使用i值的地方,打上断点

打上断点之后刷新一下页面,我们再次将鼠标放在
i上,我们会看到一个浮点字符串,此时我们不确定i的值是否是变化的,所以我们换一个翻译的单词,刷新页面,再次查看i的值,我们发现i的值是固定的,所以我们可以在代码中,直接定义一个固定的i值.

我们在自定义的 js 代码最上面一行写入:
最后
我们运行代码,yes 成功,这样我们就完成了一次简单的 js 逆向尝试。
Last updated
Was this helpful?