关于有道翻译加密数据分析

这几天刚学了爬虫,就想找几个网站练练手,因为平时经常用翻译,就找到了有道翻译

有道翻译的翻译方式分为两种,一种是直接输入文字上去,自动翻译,另一种是输入文字之后手动提交

无论是哪种方式的提交,提交的方式都是发送ajax请求

通过不断的提交,发现只有4个参数是不断变化的,通过在页面源码找不到对应的变化值,就能猜测到是由js动态生成的

既然已经知道了这些数据是由js动态生成的,那我们就找到对应的js文件

找js文件的方式大体有三种,这里就给大家稍微介绍一下

- 通过发送请求的Initiator

- 利用请求上的参数,进行全局搜索

- 通过文本输入框或者单击事件,找到对应的js脚本执行

这里就废话不多说了,已经找到了,然后我们找到请求上的参数,对js文件进行全局搜索,找到关键的提交位置

可以清楚的看到,那些动态变化的值都是来自r中的属性,我们要知道r是怎么来的,在图片的最上方有关于r的定义,其中是调用了generateSaltSign(n)方法
既然有方法的调用,一直就有方法的定义,我们通过全局搜索generateSaltSign,找到了方法的定义

因为这里的js函数比较简单,我就不用python第三方模块进行js模拟了,直接通过纯python来模拟数据

最后通过构造类型的数据,进行post的请求

值得注意的是,这里的请求不仅仅要加UA和cookie,还有referer要添加

一切准备好之后,当当当,成功拿到数据了

原文地址:https://www.cnblogs.com/williamweson/p/12778721.html