美文网首页Python学习
Python爬虫,破解有道翻译接口参数

Python爬虫,破解有道翻译接口参数

作者: ccccmatser | 来源:发表于2017-07-30 21:22 被阅读1658次

    前言

    刚没事做了一下有道翻译参数的破解,在这大致思路,也算是记录一下吧(要是有什么不对的地方,还请斧正)。此次的目标是网页端的有道翻译。闲话不多说,进入正题(各位看官觉得有用的话欢迎点个喜欢哇)

    分析

    老规矩,找到数据接口,如图:


    1.png

    可以看到,是以POST方式提交的数据,继续,看到DATA部分。


    2.png

    看到这里,这些参数除其中i,salt,sign三个参数外,其他在多次翻译时都不会改变。显而易见,i是我们需要翻译的内容。那么salt是什么呢,其实熟练地话能很容易看出来是一个时间戳。可是它为什么命名为salt呢?不由得与下面的sign联想到一起,是不是有py交易呢?sign类似于某个字符加salt的md5值。暂时是推测,接下来验证。

    找到发起这一请求的js,格式化后打开。搜索sign这一参数,很幸运,代码没有混淆,没有加密,很规范,这才是人看的代码,哈哈。

    3.png

    看到代码,是不是有一种豁然开朗的感觉,把其中的关键代码截取出来:

    u = "fanyideskweb"
    c = i.deEight("rY0D^0'nM0}g5Mm1z%1G4"),
    var g = n.md5(u + d + f + c);
    /*sign是u+d+f+c的md5值
    d 即待翻译的内容
    f是时间戳
    c, u是固定的字符串
    */
    
    e("/output/output").translate({
                i: d,
                from: s,
                to: l,
                smartresult: "dict",
                client: u,
                salt: f,
                sign: g,
                doctype: "json",
                version: "2.1",
                keyfrom: "fanyi.web",
                action: t,
                typoResult: !0
            })
    

    至此,所有的关键参数已经被分析出来了,接下来就是Python的代码实现了,同样,只写关键代码(我懒,每次都是大晚上的码字- -)

    '''
      Created by Chen
    '''
    import hashlib
    import time
    
    def createData(transStr):
        '''
        待翻译的内容
        :param transStr: 
        :return: dict
        '''
        salt = str(int(time.time()*1000))
        client = 'fanyideskweb'
        a = "rY0D^0'nM0}g5Mm1z%1G4"
        md5 = hashlib.md5()
        digStr = client+transStr+salt+a
        md5.update(digStr)
        sign = md5.hexdigest()
    
        data = {
            'i': transStr ,
            'from': 'AUTO',
            'to': 'AUTO',
            'smartresult': 'dict',
            'client': 'fanyideskweb',
            'salt': salt,
            'sign': sign,
            'doctype': 'json',
            'version': '2.1',
            'keyfrom': 'fanyi.web',
            'action': 'FY_BY_CL1CKBUTTON',
            'typoResult': 'true'
        }
        return data
    

    相关文章

      网友评论

        本文标题:Python爬虫,破解有道翻译接口参数

        本文链接:https://www.haomeiwen.com/subject/wlmklxtx.html