Python爬蟲,破解有道翻譯接口參數(shù)

前言

剛沒事做了一下有道翻譯參數(shù)的破解,在這大致思路,也算是記錄一下吧(要是有什么不對的地方,還請斧正)。此次的目標是網(wǎng)頁端的有道翻譯。閑話不多說,進入正題(各位看官覺得有用的話歡迎點個喜歡哇)

分析

老規(guī)矩,找到數(shù)據(jù)接口,如圖:


1.png

可以看到,是以POST方式提交的數(shù)據(jù),繼續(xù),看到DATA部分。


2.png

看到這里,這些參數(shù)除其中i,salt,sign三個參數(shù)外,其他在多次翻譯時都不會改變。顯而易見,i是我們需要翻譯的內(nèi)容。那么salt是什么呢,其實熟練地話能很容易看出來是一個時間戳??墒撬鼮槭裁疵麨閟alt呢?不由得與下面的sign聯(lián)想到一起,是不是有py交易呢?sign類似于某個字符加salt的md5值。暫時是推測,接下來驗證。

找到發(fā)起這一請求的js,格式化后打開。搜索sign這一參數(shù),很幸運,代碼沒有混淆,沒有加密,很規(guī)范,這才是人看的代碼,哈哈。

3.png

看到代碼,是不是有一種豁然開朗的感覺,把其中的關(guān)鍵代碼截取出來:

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 即待翻譯的內(nèi)容
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
        })

至此,所有的關(guān)鍵參數(shù)已經(jīng)被分析出來了,接下來就是Python的代碼實現(xiàn)了,同樣,只寫關(guān)鍵代碼(我懶,每次都是大晚上的碼字- -)

'''
  Created by Chen
'''
import hashlib
import time

def createData(transStr):
    '''
    待翻譯的內(nèi)容
    :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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容