有道翻译、百度翻译

有道

import requests
import time
import hashlib

url = "http://fanyi.youdao.com/translate_o?smartresult=dict^&smartresult=rule"

'''
JS加密算法
bv = n.md5(navigator.appVersion);
ts = "" + (new Date).getTime();
salt = ts + parseInt(10 * Math.random(), 10);
sign: n.md5("fanyideskweb" + "猫" + salt + "n%A-rKaT5fb[Gy?;N5@Tj")
'''

# 将参数用python重写
key_word = 'I love you!'
t = time.time()
ts = str(int((round(t * 1000))))
salt = ts + "7"
str1 = "fanyideskweb" + key_word + salt + "n%A-rKaT5fb[Gy?;N5@Tj"
sign = hashlib.md5(str1.encode(encoding="UTF-8")).hexdigest()


payload = {
    'i': key_word,
    'from': 'AUTO',
    'to': 'AUTO',
    'smartresult': 'dict',
    'client': 'fanyideskweb',
    'salt': salt,
    'sign': sign,
    'ts': ts,
    'bv': '710f3e24cb0088b9d9ea448919deb3bb',
    'doctype': 'json',
    'version': '2.1',
    'keyfrom': 'fanyi.web',
    'action': 'FY_BY_CLICKBUTTION'
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    'Referer': 'http://fanyi.youdao.com/',
    'Cookie': 'OUTFOX_SEARCH_USER_ID=1604595327@10.108.160.17; JSESSIONID=aaa9yHIwIeEoE9CHIy4ax; OUTFOX_SEARCH_USER_ID_NCOO=2126689204.9151545; ___rl__test__cookies=1581494179267'
}


response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
result = response.json()["translateResult"][0][0]["tgt"]
print(result)

百度

import requests
import execjs

url = "https://fanyi.baidu.com/v2transapi?from=zh^&to=en"
key_word = '我爱你'

with open('hello_1.js', 'r', encoding='utf-8') as f:
    ctx = execjs.compile(f.read())
sign = ctx.call('e', key_word)

payload = {
    'from': 'zh',
    'to': 'en',
    'query': key_word,
    'transtype': 'translang',
    'simple_means_flag': '3',
    'sign': sign,
    'token': '1562ecf4330b37f46bfd5185d9c9cbff'
}
headers = {
    'authority': 'fanyi.baidu.com',
    'pragma': 'no-cache',
    'cache-control': 'no-cache',
    'accept': '*/*',
    'origin': 'https://fanyi.baidu.com',
    'x-requested-with': 'XMLHttpRequest',
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36',
    'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'sec-fetch-site': 'same-origin',
    'sec-fetch-mode': 'cors',
    'referer': 'https://fanyi.baidu.com/?aldtype=16047',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'zh-CN,zh;q=0.9',
    'cookie': 'FANYI_WORD_SWITCH=1; REALTIME_TRANS_SWITCH=1; HISTORY_SWITCH=1; SOUND_SPD_SWITCH=1; SOUND_PREFER_SWITCH=1; APPGUIDE_8_2_2=1; PSTM=1581416231; BAIDUID=E1445DA3B2549E17ADE9E92FCEEB41D3:FG=1; BIDUPSID=8EB281752879A595CABE058E3B37FC0A; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; delPer=0; H_PS_PSSID=30748_1450_21082_26350_22157; PSINO=7; ZD_ENTRY=baidu; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1580872897,1581497347; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1581497700; __yjsv5_shitong=1.0_7_8d4ad120b780566835e6224589774f417a25_300_1581497703466_36.148.50.78_e932b806; yjs_js_security_passport=117123db23780d3f02adb2a169dba21984444955_1581497704_js; from_lang_often=^%^5B^%^7B^%^22value^%^22^%^3A^%^22en^%^22^%^2C^%^22text^%^22^%^3A^%^22^%^u82F1^%^u8BED^%^22^%^7D^%^2C^%^7B^%^22value^%^22^%^3A^%^22zh^%^22^%^2C^%^22text^%^22^%^3A^%^22^%^u4E2D^%^u6587^%^22^%^7D^%^5D; to_lang_often=^%^5B^%^7B^%^22value^%^22^%^3A^%^22zh^%^22^%^2C^%^22text^%^22^%^3A^%^22^%^u4E2D^%^u6587^%^22^%^7D^%^2C^%^7B^%^22value^%^22^%^3A^%^22en^%^22^%^2C^%^22text^%^22^%^3A^%^22^%^u82F1^%^u8BED^%^22^%^7D^%^5D'
}

response = requests.request("POST", url, headers=headers, data=payload)
print(response.json())
result = response.json()['trans_result']['data'][0]['dst']
print(result)

JS

function e(r) {
        var o = r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);
        if (null === o) {
            var t = r.length;
            t > 30 && (r = "" + r.substr(0, 10) + r.substr(Math.floor(t / 2) - 5, 10) + r.substr(-10, 10))
        } else {
            for (var e = r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/), C = 0, h = e.length, f = []; h > C; C++)
                "" !== e[C] && f.push.apply(f, a(e[C].split(""))),
                C !== h - 1 && f.push(o[C]);
            var g = f.length;
            g > 30 && (r = f.slice(0, 10).join("") + f.slice(Math.floor(g / 2) - 5, Math.floor(g / 2) + 5).join("") + f.slice(-10).join(""))
        }
        var u = void 0
            , l = "" + String.fromCharCode(103) + String.fromCharCode(116) + String.fromCharCode(107);
        u = null !== i ? i : (i = window[l] || "") || "";
        for (var d = u.split("."), m = Number(d[0]) || 0, s = Number(d[1]) || 0, S = [], c = 0, v = 0; v < r.length; v++) {
            var A = r.charCodeAt(v);
            128 > A ? S[c++] = A : (2048 > A ? S[c++] = A >> 6 | 192 : (55296 === (64512 & A) && v + 1 < r.length && 56320 === (64512 & r.charCodeAt(v + 1)) ? (A = 65536 + ((1023 & A) << 10) + (1023 & r.charCodeAt(++v)),
                S[c++] = A >> 18 | 240,
                S[c++] = A >> 12 & 63 | 128) : S[c++] = A >> 12 | 224,
                S[c++] = A >> 6 & 63 | 128),
                S[c++] = 63 & A | 128)
        }
        for (var p = m, F = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(97) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(54)), D = "" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(51) + ("" + String.fromCharCode(94) + String.fromCharCode(43) + String.fromCharCode(98)) + ("" + String.fromCharCode(43) + String.fromCharCode(45) + String.fromCharCode(102)), b = 0; b < S.length; b++)
            p += S[b],
                p = n(p, F);
        return p = n(p, D),
            p ^= s,
        0 > p && (p = (2147483647 & p) + 2147483648),
            p %= 1e6,
        p.toString() + "." + (p ^ m)
    }

function n(r, o) {
        for (var t = 0; t < o.length - 2; t += 3) {
            var a = o.charAt(t + 2);
            a = a >= "a" ? a.charCodeAt(0) - 87 : Number(a),
                a = "+" === o.charAt(t + 1) ? r >>> a : r << a,
                r = "+" === o.charAt(t) ? r + a & 4294967295 : r ^ a
        }
        return r
    }

//var i = null; 此为源代码
//u = null !== i ? i : (i = window[l] || "") || "";  在浏览器中执行window对象,赋值给i
var i = "320305.131321201"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值