Python 调用百度翻译接口实现翻译

小编分别写过有道,百度的翻译Demo,个人感觉有这么几个区别:

  • 代码量:百度更简洁,有道太冗余;
  • 是否收费:有道翻译免费,百度翻译超过一定量是要收费的,所以要验证key;
  • 规范性:相比有道翻译,百度翻译API渠道更正规,个人觉得。

申请百度密匙:

既然百度翻译需要验证密匙,我们就有必要先申请账号,获取密匙:

百度翻译开放平台:http://api.fanyi.baidu.com/api/trans/product/index

流程如下:

  1. 按照提示注册账号,获取 APP ID 和 密钥 ;
  2. 申请开通通用翻译API服务 ;
  3. 参考百度翻译提供的通用翻译API技术文档 接入方式,或者参照我下面的Demo 。

Demo:

我的环境是py3,Demo需要补全自己的appid和secretKey,然后直接复制即可运行,一行代码都不缺。

#百度通用翻译API,不包含词典、tts语音合成等资源,如有相关需求请联系translate_api@baidu.com
# coding=utf-8

import http.client
import hashlib
import urllib
import random
import json
from pip._vendor.distlib.compat import raw_input

# 百度appid和密钥需要通过注册百度【翻译开放平台】账号后获得
appid = 'xxxxxx'        # 填写你的appid
secretKey = 'xxxxxx'    # 填写你的密钥

httpClient = None
myurl = '/api/trans/vip/translate'  # 通用翻译API HTTP地址

fromLang = 'auto'       # 原文语种
toLang = 'zh'           # 译文语种
salt = random.randint(32768, 65536)
# 手动录入翻译内容,q存放
q = raw_input("please input the word you want to translate:")
sign = appid + q + str(salt) + secretKey
sign = hashlib.md5(sign.encode()).hexdigest()
myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&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)

    print (result)

except Exception as e:
    print (e)
finally:
    if httpClient:
        httpClient.close()

语言列表

源语言语种不确定时可设置为 auto,目标语言语种不可设置为auto。因为对于非常用语种,语种自动检测可能存在误差。

语言简写名称
auto自动检测
zh中文
en英语
yue粤语
wyw文言文
jp日语
kor韩语
fra法语
spa西班牙语
th泰语
ara阿拉伯语
ru俄语
pt葡萄牙语
de德语
it意大利语
el希腊语
nl荷兰语
pl波兰语
bul保加利亚语
est爱沙尼亚语
dan丹麦语
fin芬兰语
cs捷克语
rom罗马尼亚语
slo斯洛文尼亚语
swe瑞典语
hu匈牙利语
cht繁体中文
vie越南语

错误码列表

当翻译结果无法正常返回时,请参考下表处理:

错误码含义解决方法
52000成功 
52001请求超时重试
52002系统错误重试
52003未授权用户检查您的 appid 是否正确,或者服务是否开通
54000必填参数为空检查是否少传参数
54001签名错误请检查您的签名生成方法
54003访问频率受限请降低您的调用频率
54004账户余额不足请前往管理控制台为账户充值
54005长query请求频繁请降低长query的发送频率,3s后再试
58000客户端IP非法检查个人资料里填写的 IP地址 是否正确可前往管理控制平台修改IP限制,IP可留空
58001译文语言方向不支持检查译文语言是否在语言列表里
58002服务当前已关闭请前往管理控制台开启服务
90107认证未通过或未生效请前往我的认证查看认证进度

常见问题

见通用翻译API技术文档:http://api.fanyi.baidu.com/api/trans/product/apidoc

 

更多精彩,请关注我的"今日头条号":Java云笔记
随时随地,让你拥有最新,最便捷的掌上云服务

 

IT无知君 CSDN认证博客专家 处女座程序员 Java 大牛 GitHub
微信搜一搜「IT无知君」关注这个有意思的程序员,回复「资料」更有精心准备的一线大厂面试资料,技术书籍,简历模板;
博客中涉及的项目源码,已由「GitHub」(https://github.com/IamJiming) 收录,欢迎交流,感谢关注,持续更新...
相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页