用python实现自动化翻译

您所在的位置:网站首页 多语言翻译成英文 用python实现自动化翻译

用python实现自动化翻译

2023-08-27 05:06| 来源: 网络整理| 查看: 265

“爬Google翻译还是需要点技巧的“

引言

在做全球应用中,处理每个国家的翻译是必不可少的,也是最棘手的问题。为了保证翻译是正确的,这里需要借用Google翻译的接口,为此,特意写了一个python脚本来对接google翻译 _。

声明:严禁将代码用于商业用途

1、GoogleTranslate代码(入口代码)

注意:如果返回code不为200,请更新cookies

#!/usr/bin/python # -*- encoding:utf-8 -*- import requests from urllib.parse import quote import TkParams import json cookies = [ '_ga=GA1.3.1058806942.1531796090; NID=182=k5XIOE2zGfcgE2KEP4iTQWpzGcWXQpEHZhBh_3BF9lRwlnxyn24W2jnTaXfadXinVn6ZVa4Mkpk8HZS02sF7adR-6XI60kfQMEut5c9VQgZxDfgJnatiVzhS7qrHyZ4zP3bamIWHZ16BxtOPfiLeAsgxbUu9g_0XzqSAqgQp9GI; _gid=GA1.3.1828501068.1558528281; 1P_JAR=2019-5-23-0; _gat=1', '_ga=GA1.3.1058806942.1531796090; _gid=GA1.3.366383484.1556091451; NID=182=k5XIOE2zGfcgE2KEP4iTQWpzGcWXQpEHZhBh_3BF9lRwlnxyn24W2jnTaXfadXinVn6ZVa4Mkpk8HZS02sF7adR-6XI60kfQMEut5c9VQgZxDfgJnatiVzhS7qrHyZ4zP3bamIWHZ16BxtOPfiLeAsgxbUu9g_0XzqSAqgQp9GI; 1P_JAR=2019-4-25-0; _gat=1' ] class constant: cookie_index = 0 """ get translate url """ def _get_translate_url(from_language, to_language, translate_text): TkParams.refresh_tkk() tk = TkParams.acquire(translate_text) key = quote(translate_text) sl = from_language tl = to_language url = 'https://translate.google.cn/translate_a/single?client=webapp&sl=%s&tl=%s&hl=zh-CN&dt=at&dt=bd&dt=ex&dt=ld&dt=md&dt=qca&dt=rw&dt=rm&dt=ss&dt=t&otf=1&pc=1&ssel=0&tsel=0&kc=3&tk=%s&q=%s' % ( sl, tl, tk, key) return url def _get(url): cookie_len = len(cookies) constant.cookie_index += 1 constant.cookie_index %= cookie_len headers = {'content-type': 'application/json; charset=UTF-8', 'accept-language': 'zh-CN,zh;q=0.9', "content-disposition": "attachment; filename=\"f.txt\"", 'Accept-Encoding': '', "cookie": cookies[constant.cookie_index], 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36', "accept": "text/html", "x-client-data": "CJe2yQEIo7bJAQjEtskBCKmdygEIqKPKAQixp8oBCOKoygEI8anKAQivrMoBGIKYygE=", "accept-Charset": "UTF-8"} try: res = requests.get(url, verify=True, headers=headers, timeout=3) except: return '', 404 return res.text.encode('UTF-8').decode('UTF-8'), res.status_code """ 获取结果列表的第一个翻译 """ def _getTranslateFirstWord(translateJson): return translateJson[0][0][0].lower() """ 翻译接口,提供外部使用 参数说明: #from_language: 单词的语言代码,如:'auto'(自动检测语言) #to_language: 目标语言代码,如:'en' (英语) #word: 需要翻译的文字 """ def translate(from_language, to_language, word): url = _get_translate_url(from_language, to_language, word) translateRes, code = _get(url) if code is not 200: return '' jsonArray = json.loads(translateRes.lower()) return _getTranslateFirstWord(jsonArray) if __name__ == '__main__': print(translate('auto', 'en', '你好')) 2、翻译鉴权

由于Google翻译的接口是收费的,会对翻译内容做一个加密鉴权的限制,可以通过一下方法得到翻译词条的加密字符串,TkParams类的实现如下:

#!/usr/bin/python # -*- encoding:utf-8 -*- import math import re import requests class constant: TKK = '432247.1200919766' # this value maybe change by google ,then we need update def rshift(val, n): """python port for '>>>'(right shift with padding) """ return (val % 0x100000000) >> n def _xr(a, b): size_b = len(b) c = 0 while c


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3