百度翻译使用经验(Python版)

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个)

参考:

通用翻译API技术文档

猜你喜欢

转载自blog.csdn.net/Robin_Pi/article/details/114261008
今日推荐