python调用百度通用翻译API进行翻译
python调用百度通用翻译API步骤python调用百度通用翻译API1.百度翻译开放平台申请成为开发者2.查看平台提供的技术文档3.python调用百度翻译通用API进行翻译1.百度翻译开放平台申请成为开发者使用Baidu翻译API,首先需要去百度翻译开放平台申请成为开发者,在成为开发者之后,可获得APPID以及秘钥用于之后的API的调用。百度翻译开放平台链接申请成为开发者之后,申请使用百度翻
·
python调用百度通用翻译API
1.百度翻译开放平台申请成为开发者
使用Baidu翻译API,首先需要去百度翻译开放平台申请成为开发者,在成为开发者之后,可获得APPID以及秘钥用于之后的API的调用。
百度翻译开放平台链接
申请成为开发者之后,申请使用百度翻译通用API可在【管理控制台】–【开发者信息】中查看自己的APPID以及秘钥。
2.查看平台提供的技术文档
- 接入方式
通用翻译API通过 HTTP 接口对外提供多语种互译服务。只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
通用翻译API HTTP 地址:
http://api.fanyi.baidu.com/api/trans/vip/translate - 签名生成方法
签名是为了保证调用安全,使用 MD5 算法生成的一段字符串,生成的签名长度为 32 位,签名中的英文字符均为小写格式。
生成方法:
Step1: 将请求参数中的 APPID(appid), 翻译 query(q, 注意为UTF-8编码), 随机数(salt), 以及平台分配的密钥按照 appid+q+salt+密钥的顺序拼接得到字符串str。
Step2: 对字符串 str 做 md5 ,得到 32 位小写的 sign。 - 输入参数
请求方式: 可使用 GET 或 POST 方式,如使用 POST 方式,Content-Type 请指定为:application/x-www-form-urlencoded
字符编码:统一采用 UTF-8 编码格式.
query 长度:为保证翻译质量,请将单次请求长度控制在 6000 bytes以内(汉字约为输入参数 2000 个)
- 输出参数
返回的结果是json格式,包含以下字段:
更加详细的文档内容可以参考通用翻译API接入文档
3.python调用百度翻译通用API进行翻译
中英互译的实现,可以根据需求对参数进行修改
def baiduTranslate(translate_text, flag=1):
'''
:param translate_text: 待翻译的句子,len(q)<2000
:param flag: 1:原句子翻译成英文;0:原句子翻译成中文
:return: 返回翻译结果。
For example:
q=我今天好开心啊!
result = {'from': 'zh', 'to': 'en', 'trans_result': [{'src': '我今天好开心啊!', 'dst': "I'm so happy today!"}]}
'''
appid = 'xxxxx' # 填写你的appid
secretKey = 'xxxxxx' # 填写你的密钥
httpClient = None
myurl = '/api/trans/vip/translate' # 通用翻译API HTTP地址
fromLang = 'auto' # 原文语种
if flag:
toLang = 'en' # 译文语种
else:
toLang = 'zh' # 译文语种
salt = random.randint(3276, 65536)
sign = appid + translate_text + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(translate_text) + '&from=' + fromLang + \
'&to=' + toLang + '&salt=' + str(salt) + '&sign=' + sign
# 建立会话,返回结果
try:
httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
httpClient.request('GET', myurl)
# response是HTTPResponse对象
response = httpClient.getresponse()
result_all = response.read().decode("utf-8")
result = json.loads(result_all)
# return result
return result['trans_result'][0]['dst']
except Exception as e:
print(e)
finally:
if httpClient:
httpClient.close()
if __name__ == '__main__':
# 手动录入翻译内容,q存放
# q = raw_input("please input the word you want to translate:")
q = "介绍一下整本书,比如是传主的人生,或者作者写这本书的特色。可参看目录、序言或简介等资料。"
'''
flag=1 输入的句子翻译成英文
flag=0 输入的句子翻译成中文
'''
result = baiduTranslate(q, flag=1) # 百度翻译
print("原句:"+q)
print(result)
输出结果:
记录备用
更多推荐
已为社区贡献2条内容
所有评论(0)