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

来源:互联网 发布:维纳滤波算法 编辑:程序博客网 时间:2024/05/29 12:16

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,hashlibimport randomimport requests,sysdef getTransText(in_text):q = in_textfromLang = 'auto'  #翻译源语言=自动检测toLang1 = 'auto'    #译文语言 = 自动检测appid = '***************' #APP IDsalt = random.randint(32768, 65536)secretKey = '************' #密钥    #生成signsign = 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='+signurl = "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))

原创粉丝点击