有道是怎么翻译的
先打开有道翻译,在里面输出英文进行翻译,左侧出现翻译结果。
初步推测这些信息是由xhr控制,所以我打开了开发者工具,选择网络这一栏,并重新翻译一次,并勾选Fech/XHR
发现有一个xhr请求,点开看看是不是我们需要的。
好像是我们需要的,也就是说我们只需要进行请求这个链接,就可以获得数据。
看一下这链接请求正文,发现这个是POST请求。
在看一下这个链接的表单数据:
构造请求
经过多次翻译,发现有几个参数不变:
"from": "AUTO",
"to": "AUTO",
"smartresult": "dict",
"client": "fanyideskweb",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_CLICKBUTTION"
以上参数没有变化
i
这个参数是要翻译的单词,其他参数现在并不知道是怎么来的。
推测是js加密的,接着去网页源代码中找js文件
在源代码最下方,发现有三个js文件,我们把js文件内容经过js美化进行关键字搜索,第三个是我们需要的。
再这个文件里,发现这些
function(e, t) {
var n = e("./jquery-1.7");
e("./utils");
e("./md5");
var r = function(e) {
var t = n.md5(navigator.appVersion), // 这里对应着bv
r = "" + (new Date).getTime(), // 这里对应着lts
i = r + parseInt(10 * Math.random(), 10); // 这里对应着salt
return {
ts: r,
bv