python调用百度通用翻译API
步骤
python调用百度通用翻译API1.百度翻译开放平台申请成为开发者2.查看平台提供的技术文档3.python调用百度翻译通用API进行翻译1.百度翻译开放平台申请成为开发者
使用Baidu翻译API,首先需要去百度翻译开放平台申请成为开发者,在成为开发者之后,可获得APPID以及秘钥用于之后的API的调用。
百度翻译开放平台链接
申请成为开发者之后,申请使用百度翻译通用API可在【管理控制台】–【开发者信息】中查看自己的APPID以及秘钥。
2.查看平台提供的技术文档
接入方式通用翻译API通过 HTTP 接口对外提供多语种互译服务。只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
通用翻译API HTTP 地址:
http://api./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' # 填写你的appidsecretKey = 'xxxxxx' # 填写你的密钥httpClient = Nonemyurl = '/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) + secretKeysign = 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.')httpClient.request('GET', myurl)# response是HTTPResponse对象response = httpClient.getresponse()result_all = response.read().decode("utf-8")result = json.loads(result_all)# return resultreturn 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)
输出结果:
记录备用