直奔主题,看了好多帖子,对于{“errorCode”:50}的解决方法基本都是删除url中的"_o",目的大概就是绕过有道翻译的反爬虫机制,也就是salt和sign。
当url中包含"_o"的时候会自动包含如下两个参数:
salt: 1543408043480
sign: 6ffcd19f02ce3cfea51ccbc622bff27a
salt应该是根据系统时间生成的一个时间戳,
sign是以要查询的数据和salt生成的加密数据,每次查询新的单词或者中文时都需要把值和新的salt传给加密公式进行加密,因此每次的sign都不一样,导致出现{“errorCode”:50}错误。
知道问题后就可以尝试用别的方法解决{“errorCode”:50}错误了。
首先,分析有道源码后推测出加密的方法在"fanyi.min.js"文件中,如图所示:
打开后是一大堆人类看不懂的字符,可以用js代码格式化工具格式化一下格式化一下
格式化后的代码就好看多了,再次分析代码后可以找到如下这段:
var r = function(e) {
var t = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10));
return {
salt: t,
sign: n.md5("fanyideskweb" + e + t + "sr_3(QOHT)L2dx#uuGR@r")
}
};
var t = “” + ((new Date)