爬虫趣味里面最吸引人之一就是算法分析。
加密的文件是http://shared.ydstatic.com/fanyi/newweb/v1.0.6/scripts/newweb/fanyi.min.js
可以发现下面两行i = "" + ((new Date).getTime() + parseInt(10 * Math.random(), 10)),
o = n.md5("fanyideskweb" + t + i + "aNPG!!u6sesA>hBAW1@(-");
进过分析i就是salt,t就是需要翻译的东东,o就是sign
然后就是post进行翻译了http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule
参数如下i:123
from:zh-CHS
to:ja
smartresult:dict
client:fanyideskweb
salt:1517475530858
sign:c237bda429a18e1cbc4da5b2e4d28e39
doctype:json
version:2.1
keyfrom:fanyi.web
action:lan-select
typoResult:false
其中salt就是上面在fanyi.min.js里发现的第一行算,而sign则用第二行算出
我这里只验证了一些sign加密是否正确,完整的代码以及代码测试没有写。你可以试试。 |