一、前言
有道翻译API(主要推荐)
百度翻译API(需要申请key与密钥,每月100万免费字符)
谷歌翻译API(需要梯子,而且不稳定,不推荐)
二、代码
1、有道翻译
def is_Chinese(content): # 判断输入的内容是否是中文
for ch in content:
if '\u4e00' <= ch <= '\u9fff':
return True
else:
return False
2、有道翻译
import urllib.request
import urllib.parse
import json
import requests # pip intasll requests
import execjs # 安装指令:pip install PyExecJS
import random
import hashlib
import re
# 有道翻译方法,不支持一次翻译一大段文字
def youdao_translate(content):
'''实现有道翻译的接口'''
url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&sessionFrom=https://www.baidu.com/link'
data = {
'from': 'AUTO',
'to': 'AUTO',
'smartresult': 'dict',
'client': 'fanyideskweb',
'salt': '1500092479607',
'sign': 'd9f9a3aa0a7b34241b3fe30505e5d436',
'doctype': 'json',
'version': '2.1',
'keyfrom': 'fanyi.web',
'action': 'FY_BY_CL1CKBUTTON',
'typoResult': 'true'}
data['i'] = content.replace('\n', '')
data = urllib.parse.urlencode(data).encode('utf-8')
wy = urllib.request.urlopen(url, data)
html = wy.read().decode('utf-8')
ta = json.loads(html)
res = ta['translateResult'][0][0]['tgt']
return res
if __name__ == '__main__':
res = youdao_translate("红色,沙发")
2、百度翻译
import urllib.request
import urllib.parse
import json
import requests # pip intasll requests
import execjs # 安装指令:pip install PyExecJS
import random
import hashlib
import re
# 百度翻译方法
def baidu_translate(content):
print(content)
if len(content) > 4891:
return '输入请不要超过4891个字符!'
salt = str(random.randint(0, 50))
# 申请网站 http://api.fanyi.baidu.com/api/trans
appid = '201912XXXXXXXXXXX' # 这里写你自己申请的
secretKey = 'e83BXpQXXXXXXXXXXX' # 这里写你自己申请的
sign = appid + content + salt + secretKey
sign = hashlib.md5(sign.encode(encoding='UTF-8')).hexdigest()
head = {'q': f'{content}',
'from': 'en',
'to': 'zh',
'appid': f'{appid}',
'salt': f'{salt}',
'sign': f'{sign}'}
j = requests.get('http://api.fanyi.baidu.com/api/trans/vip/translate', head)
print(j.json())
res = j.json()['trans_result'][0]['dst']
res = re.compile('[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]').sub(' ', res)
print(res)
return res
if __name__ == '__main__':
ret = baidu_translate("红色,沙发")
print(ret)
3、谷歌翻译
无资源,不支持谷歌翻译。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。