1. 百度翻译介绍
可选模式
- 通用翻译 API-标准版:完全免费,QPS=1
- 通用翻译 API-高级版(需进行个人认证),200万字符免费/每月;超过 200 万字符,按照 49 元人民币/百万字符支付当月超出部分字符量费用 (QPS 为 10) 。
- 通用翻译 API-尊享版:需企业认证,计费方式同上。
输入和输出(概览)
输出形式:trans_result
trans_result为一个数组,其中每一个{ }
就是一个段落,其构造如下所示:
trans_result: [{
},{
},{
}]
段落成果即为trans_result数组中的一项:
{
“src”:””,“dst”:””}
一些参数说明
- q:请求翻译query
- from:翻译源语言
- to:译文语言
- appid:APP ID
- salt:随机数
- sigh:appid+q+salt+密钥 的MD5值
签名是为了保证调用安全,使用MD5算法生成的一段字符串,生成的签名长度为32位,签名中的英文字符均为小写格式。
2. 使用示例
这里测试将英文单词apple
翻译为中文。
# 百度通用翻译API,不包含词典、tts语音合成等资源,如有相关需求请联系[email protected]
# coding=utf-8
import http.client
import hashlib
import urllib
import random
import json
appid = 'xxxxx' # 填写你的appid
secretKey = 'xxxxx' # 填写你的密钥
httpClient = None
myurl = '/api/trans/vip/translate'
fromLang = 'auto' #原文语种
toLang = 'zh' #译文语种
salt = random.randint(32768, 65536)
q = 'apple' # 待翻译字符串
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
print(f'myurl: {myurl}')
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 (f'result: {result}')
except Exception as e:
print (e)
finally:
if httpClient:
httpClient.close()
打印结果如下:
myurl: /api/trans/vip/translate?appid=xxxxx&q=apple&from=auto&to=zh&salt=40068&sign=70ee84dc8e4d1bd75dc7db159d63c1a9
result: {
'from': 'en', 'to': 'zh', 'trans_result': [{
'src': 'apple', 'dst': '苹果'}]}
3. 可能出现的问题
错误码列表
百度翻译API存在的各种限制
如果程序出现报错,可以考虑下面这些可能的方面。
1、账户类型
标准版:基础翻译免费使用,不限字符量,QPS(每秒访问量) 为 1。
高级版:每月200万字符免费,QPS 为 10
2、接口制约
百度翻译API的使用频率默认限度为每个IP 1000次/小时。
3、IP限制
同一 IP 当日使用多个 APPID 发送翻译请求,则该 IP 将被封禁当日请求权限,次日解封。(58003 错误)
4、单次翻译上限:6000字节
query长度:为保证翻译质量,请将单次请求长度控制在 6000 bytes以内。(汉字约为2000个)
参考: