|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
很多人都试过去爬有道翻译,然后得到了{"errorcode":50}的回复
当然,我不是来问这个的,因为我知道请求的提交的data有加密参数
我的问题是,我看了很多关于sign这个参数的获取方式,都是使用的这个js片段获取的:
- var t = e.i,
- i = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10)),
- o = n.md5("fanyideskweb" + t + i + "ebSeFb%=XZ%T[KZ)c(sy!");
- r && r.abort(), r = n.ajax({
- type: "POST",
- contentType: "application/x-www-form-urlencoded; charset=UTF-8",
- url: "/bbk/translate_m.do",
- data: {
- i: e.i,
- client: "fanyideskweb",
- salt: i,
- sign: o,
- tgt: e.tgt,
- from: e.from,
- to: e.to,
- doctype: "json",
- version: "3.0",
- cache: !0
- },
复制代码
其中的重点就是o = n.md5("fanyideskweb" + t + i + "ebSeFb%=XZ%T[KZ)c(sy!");
但是我的疑问是,这个data分明跟我们在页面中看到的请求需要传入的data不一样啊
我看到的是下面这个:
- r = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10)),
- o = u.md5(S + n + r + D),
- a = n.length;
- if (L(), w.text(a), a > 5e3) {
- var l = n;
- n = l.substr(0, 5e3), o = u.md5(S + n + r + D);
- var c = l.substr(5e3);
- c = (c = c.trim()).substr(0, 3), u("#inputTargetError").text("有道翻译字数限制为5000字,“" + c + "”及其后面没有被翻译!").show(), w.addClass("fonts__overed")
- } else w.removeClass("fonts__overed"), u("#inputTargetError").hide();
- f.isWeb(n) ? i() : s({
- i: n,
- from: _,
- to: C,
- smartresult: "dict",
- client: S,
- salt: r,
- sign: o,
- doctype: "json",
- version: "2.1",
- keyfrom: "fanyi.web",
- action: e || "FY_BY_DEFAULT",
- typoResult: !1
复制代码
这个里面的sign是这样算的o = u.md5(S + n + r + D),
但是我一直都找不到这个D是什么参数,
所以问题来了,为什么大家都在用第一个方式去获取sign?js里面调用的明明是我发的第二段js片段才对 |
|