首页 > 编程语言 > 详细

python翻译(二)

时间:2021-03-04 10:16:16      阅读:19      评论:0      收藏:0      [点我收藏+]

百度翻译,通过设置参数可可以实现翻译为指定语种

baidujs1.js

 
 var i = "320305.131321201"
 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
    }

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)
    }

# -*- coding: UTF-8 -*-
import requests
import execjs


base_url1=https://fanyi.baidu.com/langdetect
base_url2=https://fanyi.baidu.com/v2transapi?from=zh&to=en

heeader={
    Accept: */*,
    Accept-Encoding: gzip, deflate, br,
    Accept-Language: zh-CN,zh;q=0.9,
    Connection: keep-alive,
    Content-Length: 15,
    Content-Type: application/x-www-form-urlencoded; charset=UTF-8,
    Host: fanyi.baidu.com,
    Origin: https://fanyi.baidu.com,
    Referer: https://fanyi.baidu.com/translate?aldtype=16047&query=&keyfrom=baidu&smartresult=dict&lang=auto2zh,
    Sec-Fetch-Dest: empty,
    Sec-Fetch-Mode: cors,
    Sec-Fetch-Site: same-origin,
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36,
    X-Requested-With: XMLHttpRequest,
    Cookie:PSTM=1612624763; BAIDUID=C58C3452EE54109B3A68C479D5BBC17C:FG=1; BIDUPSID=F132A692520CE0B58BD538B97D6AB2F8; __yjs_duid=1_9dea924d6435cd13517b8d72053fab691612626321971; REALTIME_TRANS_SWITCH=1; FANYI_WORD_SWITCH=1; HISTORY_SWITCH=1; SOUND_PREFER_SWITCH=1; SOUND_SPD_SWITCH=1; BDORZ=B490B5EBF6F3CD402E515D22BCDA1598; H_PS_PSSID=33357_33256_33272_31254_33570_33584_26350_33268; delPer=0; PSINO=7; BAIDUID_BFESS=C58C3452EE54109B3A68C479D5BBC17C:FG=1; BCLID=7359342688896899156; BDSFRCVID=pGDOJexroG3VnUoeblZTesObY_weG7bTDYLtOwXPsp3LGJLVJeC6EG0Pts1-dEu-EHtdogKK0gOTH6KF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=tR3aQ5rtKRTffjrnhPF30Rc3XP6-hnjy3b7pWfKb5RoWExcNKUnDWq4Wbttf5q3RymJ42-39LPO2hpRjyxv4y4Ldj4oxJpOJ-bCL0p5aHl51fbbvbURvD--g3-AqBM5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIEoCvt-5rDHJTg5DTjhPrMD4ALWMT-MTryKKOCafK5eJo9L4OqKU4VWJnfKx-fKHnRhlRNB-3iV-OxDUvnyxAZyxomtfQxtNRJQKDE5p5hKq5S5-OobUPUDMJ9LUkqW2cdot5yBbc8eIna5hjkbfJBQttjQn3hfIkj2CKLtCvDqTrP-trf5DCShUFsbUbRB2Q-XPoO3KO4Dx5vbt5SWl08KPnaXlRf5mkf3fbgylRM8P3y0bb2DUA1y4vpBtQmJeTxoUJ2-KDVeh5Gqfo15-0ebPRiJPb9Qg-qahQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0HPonHjL2j6JW3D; BCLID_BFESS=7359342688896899156; BDSFRCVID_BFESS=pGDOJexroG3VnUoeblZTesObY_weG7bTDYLtOwXPsp3LGJLVJeC6EG0Pts1-dEu-EHtdogKK0gOTH6KF_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=tR3aQ5rtKRTffjrnhPF30Rc3XP6-hnjy3b7pWfKb5RoWExcNKUnDWq4Wbttf5q3RymJ42-39LPO2hpRjyxv4y4Ldj4oxJpOJ-bCL0p5aHl51fbbvbURvD--g3-AqBM5dtjTO2bc_5KnlfMQ_bf--QfbQ0hOhqP-jBRIEoCvt-5rDHJTg5DTjhPrMD4ALWMT-MTryKKOCafK5eJo9L4OqKU4VWJnfKx-fKHnRhlRNB-3iV-OxDUvnyxAZyxomtfQxtNRJQKDE5p5hKq5S5-OobUPUDMJ9LUkqW2cdot5yBbc8eIna5hjkbfJBQttjQn3hfIkj2CKLtCvDqTrP-trf5DCShUFsbUbRB2Q-XPoO3KO4Dx5vbt5SWl08KPnaXlRf5mkf3fbgylRM8P3y0bb2DUA1y4vpBtQmJeTxoUJ2-KDVeh5Gqfo15-0ebPRiJPb9Qg-qahQ7tt5W8ncFbT7l5hKpbt-q0x-jLTnhVn0MBCK0HPonHjL2j6JW3D; Hm_lvt_64ecd82404c51e03dc91cb9e8c025574=1612626323,1613134188,1614178814,1614180857; Hm_lpvt_64ecd82404c51e03dc91cb9e8c025574=1614180857; __yjsv5_shitong=1.0_7_3795a65f85c8656b70145fa7927c8e2b83fc_300_1614180854884_36.147.122.138_98ea772c,
    }

message=input("请输入要翻译的单词或语句:")

form_data1={
    query:message    
}

#从第一个地址获取翻译内容的语种
response=requests.post(url=base_url1,headers=heeader,data=form_data1)

from_data=response.json()[lan]
#print(from_data)

#从第二的地址获取翻译完成后的内容
#构建表单信息

#获取sign值
query = message
with open(baidujs1.js, r, encoding=utf-8) as f:
    ctx = execjs.compile(f.read())

sign = ctx.call(e, query)
#print(sign)

‘‘‘
 langList: {
                ‘zh‘: ‘中文‘,‘jp‘: ‘日语‘,‘jpka‘: ‘日语假名‘,‘th‘: ‘泰语‘,‘fra‘: ‘法语‘,‘en‘: ‘英语‘,‘spa‘: ‘西班牙语‘,‘kor‘: ‘韩语‘,
                ‘tr‘: ‘土耳其语‘,‘vie‘: ‘越南语‘,‘ms‘: ‘马来语‘,‘de‘: ‘德语‘,‘ru‘: ‘俄语‘,‘ir‘: ‘伊朗语‘,‘ara‘: ‘阿拉伯语‘,‘est‘: ‘爱沙尼亚语‘,
                ‘be‘: ‘白俄罗斯语‘,‘bul‘: ‘保加利亚语‘,‘hi‘: ‘印地语‘,‘is‘: ‘冰岛语‘,‘pl‘: ‘波兰语‘,‘fa‘: ‘波斯语‘,‘dan‘: ‘丹麦语‘,‘tl‘: ‘菲律宾语‘,
                ‘fin‘: ‘芬兰语‘,‘nl‘: ‘荷兰语‘,‘ca‘: ‘加泰罗尼亚语‘,‘cs‘: ‘捷克语‘,‘hr‘: ‘克罗地亚语‘,‘lv‘: ‘拉脱维亚语‘,‘lt‘: ‘立陶宛语‘,‘rom‘: ‘罗马尼亚语‘,
                ‘af‘: ‘南非语‘,‘no‘: ‘挪威语‘,‘pt_BR‘: ‘巴西语‘,‘pt‘: ‘葡萄牙语‘,‘swe‘: ‘瑞典语‘,‘sr‘: ‘塞尔维亚语‘,‘eo‘: ‘世界语‘,‘sk‘: ‘斯洛伐克语‘,
                ‘slo‘: ‘斯洛文尼亚语‘,‘sw‘: ‘斯瓦希里语‘,‘uk‘: ‘乌克兰语‘,‘iw‘: ‘希伯来语‘,‘el‘: ‘希腊语‘,‘hu‘: ‘匈牙利语‘,‘hy‘: ‘亚美尼亚语‘,‘it‘: ‘意大利语‘,
                ‘id‘: ‘印尼语‘,‘sq‘: ‘阿尔巴尼亚语‘,‘am‘: ‘阿姆哈拉语‘,‘as‘: ‘阿萨姆语‘,‘az‘: ‘阿塞拜疆语‘,‘eu‘: ‘巴斯克语‘,‘bn‘: ‘孟加拉语‘,‘bs‘: ‘波斯尼亚语‘,
                ‘gl‘: ‘加利西亚语‘,‘ka‘: ‘格鲁吉亚语‘,‘gu‘: ‘古吉拉特语‘,‘ha‘: ‘豪萨语‘,‘ig‘: ‘伊博语‘,‘iu‘: ‘因纽特语‘,‘ga‘: ‘爱尔兰语‘,‘zu‘: ‘祖鲁语‘,
                ‘kn‘: ‘卡纳达语‘,‘kk‘: ‘哈萨克语‘,‘ky‘: ‘吉尔吉斯语‘,‘lb‘: ‘卢森堡语‘,‘mk‘: ‘马其顿语‘,‘mt‘: ‘马耳他语‘,‘mi‘: ‘毛利语‘,‘mr‘: ‘马拉提语‘,
                ‘ne‘: ‘尼泊尔语‘,‘or‘: ‘奥利亚语‘,‘pa‘: ‘旁遮普语‘,‘qu‘: ‘凯楚亚语‘,‘tn‘: ‘塞茨瓦纳语‘,‘si‘: ‘僧加罗语‘,‘ta‘: ‘泰米尔语‘,‘tt‘: ‘塔塔尔语‘,
                ‘te‘: ‘泰卢固语‘,‘ur‘: ‘乌尔都语‘,‘uz‘: ‘乌兹别克语‘,‘cy‘: ‘威尔士语‘,‘yo‘: ‘约鲁巴语‘,‘yue‘: ‘粤语‘,‘wyw‘: ‘文言文‘,‘cht‘: ‘中文繁体‘    
                }
    
‘‘‘
form_data2={
    from: from_data,
    to: en,                #要翻译为什么语言
    query:message,
    transtype: translang,
    simple_means_flag: 3,
    sign: str(sign),
    token:17eac1ecb8fe348f69916fdc0a02465c,
    domain: common,
}
#获取翻译结果
response2=requests.post(url=base_url2,headers=heeader,data=form_data2)
#result=response2.json()
#print(result)
result=response2.json()[trans_result][data][0][dst]
print(翻译结果为:%s%result)

 

python翻译(二)

原文:https://www.cnblogs.com/gostClimbers/p/14477785.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!