您的位置:首页 > 编程语言 > Python开发

实践项目五:python调用百度API实现自动检测翻译

2017-07-11 22:42 1541 查看
python环境:python 3.4.3

1.百度翻译api:

百度翻译开放平台是百度翻译针对广大开发者提供的开放服务平台,提供多语种互译服务。 您只需要通过调用百度翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类, 就可以得到相应的翻译结果。任何第三方应用或网站都可以通过使用百度翻译API为用户提供实时优质的多语言翻译服务,提升产品体验。

2.免费服务

百度翻译每月提供200万字符免费额度,超出后需要按照字符数收费。

3.开发者申请链接:点击打开链接(注册一个账号)

 这个帮助文档链接:点击打开链接



4.最重要的是接入文档:介绍了详细的接入方法,还有各种语言的Demo.

这是DEMO的例子:

例:将apple从英文翻译成中文:

请求参数:

q=apple

from=en

to=zh

appid=2015063000000001

salt=1435660288

平台分配的密钥: 12345678

生成sign:

>拼接字符串1

拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678

得到字符串1 =2015063000000001apple143566028812345678

>计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)

sign=md5(2015063000000001apple143566028812345678)

sign=f89f9594663708c1605f3d736d01d2d4

完整请求为:

http://api.fanyi.baidu.com/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4

也可以使用POST方法传送需要的参数。
因为我用的是python 3.4.3,没有了md5,这是解决方法:(Python3
--md5:点击打开链接
修改 :
        fromLang = 'auto'  #翻译源语言=自动检测
toLang1 = 'auto'    #译文语言 = 自动检测
可实现自动检测语言翻译。
运行结果:



我的源码:

#/usr/bin/env python
#-*- coding:utf-8 -*-

import urllib,hashlib
import random
import requests,sys

def getTransText(in_text):
q = in_text
fromLang = 'auto'  #翻译源语言=自动检测
toLang1 = 'auto'    #译文语言 = 自动检测

appid = '***************' #APP ID
salt = random.randint(32768, 65536)
secretKey = '************' #密钥

#生成sign
sign = appid+q+str(salt)+secretKey
#计算签名sign(对字符串1做md5加密,注意计算md5之前,串1必须为UTF-8编码)
m1 = hashlib.md5(sign.encode('utf-8'))
sign = m1.hexdigest()

#计算完整请求
myurl = '/api/trans/vip/translate'
myurl = myurl+'?appid='+appid+'&q='+q+'&from='+fromLang+'&to='+toLang1+'&salt='+str(salt)+'&sign='+sign
url = "http://api.fanyi.baidu.com"+myurl

# 发送请求
url = url.encode('utf-8')
res = requests.get(url)

#转换为字典类型
res = eval(res.text)
return (res["trans_result"][0]['dst'])
while(True):
in_text=input()
print (in_text+'  =  '+getTransText(in_text))
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: