admin管理员组文章数量:1567262
一、灵感来源
1、最近在学习python爬虫,发现现在的百度翻译限制爬虫了,在网上找到了一些文档,说现在都限制反爬,让我一顿失望,爬虫的时候会报:{"errno":997,"errmsg":"\u672a\u77e5\u9519\u8bef","query":"he","from":"en","to":"zh","error":997}的错误;但是还是让我找到了解决方案,有位博主用5行代码写出了对应调用对应接口的程序,我是特别膜拜,就大树底下好乘凉,你懂得,借鉴借鉴。这边奉上对应博主文章链接,有兴趣的伙伴,可以从他的文档开始入手。
【python】5行代码实现百度翻译api接口调用
【python】5行代码实现百度翻译api接口调用_XavierJ的博客-CSDN博客
- 但是运用这种方式有个致命的缺点就是每次只能翻译一个单词,而且单词里面不能有特殊符号,比如翻译hello,world就会报错,这对于严谨的我们来说肯定接受不了,竟然百度限制了反爬,那我们加入百度开放的API不就好了。打不过就加入(真香!!!)。
- 运用申请的百度API自己开发一个本地的翻译软件
- 申请百度翻译API:如何申请百度翻译API_360新知
- API接口文档(通用翻译)
通用翻译API接入文档
欢迎使用通用翻译API,本文档将指导您如何快速接入。
如何使用通用翻译API?
- 使用您的百度账号登录百度翻译开放平台(http://api.fanyi.baidu);
- 注册成为开发者,获得 APPID ;
- 进行开发者认证(如仅需标准版可跳过);
- 开通通用翻译API服务:开通链接;
- 参考技术文档和 Demo 编写代码。
接入方式
通用翻译API通过 HTTP 接口对外提供多语种互译服务。您只需要通过调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言种类,就可以得到相应的翻译结果。
通用翻译API HTTPS 地址:
https://fanyi-api.baidu/api/trans/vip/translate
签名生成方法
签名是为了保证调用安全,使用 MD5 算法生成的一段字符串,生成的签名长度为 32 位,签名中的英文字符均为小写格式。
生成方法:
Step1. 将请求参数中的 APPID(appid), 翻译 query(q,注意为UTF-8编码),随机数(salt),以及平台分配的密钥(可在管理控制台查看) 按照 appid+q+salt+密钥的顺序拼接得到字符串 1。
Step2. 对字符串 1 做 md5 ,得到 32 位小写的 sign。
注:
1. 待翻译文本(q)需为 UTF-8 编码;
2. 在生成签名拼接 appid+q+salt+密钥 字符串时,q 不需要做 URL encode,在生成签名之后,发送 HTTP 请求之前才需要对要发送的待翻译文本字段 q 做 URL encode;
3.如遇到报 54001 签名错误,请检查您的签名生成方法是否正确,在对 sign 进行拼接和加密时,q 不需要做 URL encode,很多开发者遇到签名报错均是由于拼接 sign 前就做了 URL encode;
4.在生成签名后,发送 HTTP 请求时,如果将 query 拼接在 url 上,需要对 query 做 URL encode。
输入参数
请求方式: 可使用 GET 或 POST 方式,如使用 POST 方式,Content-Type 请指定为:application/x-www-form-urlencoded
字符编码:统一采用 UTF-8 编码格式
query 长度:为保证翻译质量,请将单次请求长度控制在 6000 bytes以内(汉字约为输入参数 2000 个)
字段名 | 类型 | 是否必填 | 描述 | 备注 |
q | string | 是 | 请求翻译query | UTF-8编码 |
from | string | 是 | 翻译源语言 | 可设置为auto |
to | string | 是 | 翻译目标语言 | 不可设置为auto |
appid | string | 是 | APP ID | 可在管理控制台查看 |
salt | string | 是 | 随机数 | 可为字母或数字的字符串 |
sign | string | 是 | 签名 | appid+q+salt+密钥的MD5值 |
以下字段仅开通了词典、TTS用户需要填写 | ||||
tts | integer | 否 | 是否显示语音合成资源 | 0-显示1-不显示 |
dict | integer | 否 | 是否显示词典资源 | 0-显示1-不显示 |
以下字段仅开通了”我的术语库“用户需要填写 | ||||
action | integer | 否 | 判断是否需要使用自定义术语干预API | 1-是0-否 |
输出参数
返回的结果是json格式,包含以下字段:
字段名 | 类型 | 描述 | 备注 | |
from | string | 源语言 | 返回用户指定的语言,或者自动检测出的语种(源语言设为 auto 时) | |
to | string | 目标语言 | 返回用户指定的目标语言 | |
trans_result | array | 翻译结果 | 返回翻译结果,包括 src 和 dst 字段 | |
trans_result.*.src | string | 原文 | 接入举例中的“apple” | |
trans_result.*dst | string | 译文 | 接入举例中的“苹果” | |
error_code | integer | 错误码 | 仅当出现错误时显示 | |
以下字段仅开通了词典、TTS用户可见 | ||||
src_tts | string | 原文tts链接 | mp3格式,暂时无法指定发音 | |
dst_tts | string | 译文tts链接 | mp3格式,暂时无法指定发音 | |
dict | string | 中英词典资源 | 返回中文或英文词典资源,包含音标,简明释义等内容 |
接入举例
例如:将英文单词 apple 翻译成中文:
请求参数:
q=apple
from=en
to=zh
appid=2015063000000001(请替换为您的appid)
salt=1435660288(随机码)
平台分配的密钥: 12345678
生成签名sign:
Step1. 拼接字符串1:
拼接appid=2015063000000001+q=apple+salt=1435660288+密钥=12345678得到字符串1:“2015063000000001apple143566028812345678”
Step2. 计算签名:(对字符串1做md5加密)
sign=md5(2015063000000001apple143566028812345678),得到sign=f89f9594663708c1605f3d736d01d2d4
拼接完整请求:
http://api.fanyi.baidu/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4
注:也可使用 POST 方式,如 POST 方式传送,Content-Type 请指定为:application/x-www-form-urlencoded
语种列表
通用翻译API支持语种数已达 201种,完整列表如下。其中,对于常见语种列表内的语种,所有用户均可调用。对于非常见语种,仅企业已认证的尊享版用户可调用,未认证的非尊享版用户调用将返回错误。
源语言语种不确定时可设置为 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 |
完整语种列表
中文首字母 | 名称 | 代码 | 语种检测 | 名称 | 代码 | 语种检测 | 名称 | 代码 | 语种检测 |
A | 阿拉伯语 | ara | 是 | 爱尔兰语 | gle | 是 | 奥克语 | oci | 是 |
阿尔巴尼亚语 | alb | 是 | 阿尔及利亚阿拉伯语 | arq | 否 | 阿肯语 | aka | 否 | |
阿拉贡语 | arg | 否 | 阿姆哈拉语 | amh | 是 | 阿萨姆语 | asm | 是 | |
艾马拉语 | aym | 否 | 阿塞拜疆语 | aze | 是 | 阿斯图里亚斯语 | ast | 是 | |
奥塞梯语 | oss | 否 | 爱沙尼亚语 | est | 是 | 奥杰布瓦语 | oji | 否 | |
奥里亚语 | ori | 是 | 奥罗莫语 | orm | 否 | ||||
B | 波兰语 | pl | 是 | 波斯语 | per | 是 | 布列塔尼语 | bre | 是 |
巴什基尔语 | bak | 否 | 巴斯克语 | baq | 是 | 巴西葡萄牙语 | pot | 否 | |
白俄罗斯语 | bel | 是 | 柏柏尔语 | ber | 是 | 邦板牙语 | pam | 否 | |
保加利亚语 | bul | 是 | 北方萨米语 | sme | 否 | 北索托语 | ped | 否 | |
本巴语 | bem | 否 | 比林语 | bli | 否 | 比斯拉马语 | bis | 否 | |
俾路支语 | bal | 否 | 冰岛语 | ice | 是 | 波斯尼亚语 | bos | 是 | |
博杰普尔语 | bho | 否 | |||||||
C | 楚瓦什语 | chv | 否 | 聪加语 | tso | 否 | |||
D | 丹麦语 | dan | 是 | 德语 | de | 是 | 鞑靼语 | tat | 是 |
掸语 | sha | 否 | 德顿语 | tet | 否 | 迪维希语 | div | 否 | |
低地德语 | log | 是 | |||||||
E | 俄语 | ru | 是 | ||||||
F | 法语 | fra | 是 | 菲律宾语 | fil | 是 | 芬兰语 | fin | 是 |
梵语 | san | 否 | 弗留利语 | fri | 否 | 富拉尼语 | ful | 否 | |
法罗语 | fao | 否 | |||||||
G | 盖尔语 | gla | 否 | 刚果语 | kon | 否 | 高地索布语 | ups | 否 |
高棉语 | hkm | 是 | 格陵兰语 | kal | 否 | 格鲁吉亚语 | geo | 是 | |
古吉拉特语 | guj | 是 | 古希腊语 | gra | 否 | 古英语 | eno | 否 | |
瓜拉尼语 | grn | 否 | |||||||
H | 韩语 | kor | 是 | 荷兰语 | nl | 是 | 胡帕语 | hup | 否 |
哈卡钦语 | hak | 否 | 海地语 | ht | 否 | ||||
豪萨语 | hau | 否 | 黑山语 | mot | 否 | ||||
J | 吉尔吉斯语 | kir | 否 | 加利西亚语 | glg | 是 | 加拿大法语 | frn | 否 |
加泰罗尼亚语 | cat | 是 | 捷克语 | cs | 是 | ||||
K | 卡拜尔语 | kab | 是 | 卡纳达语 | kan | 是 | 卡努里语 | kau | 否 |
卡舒比语 | kah | 否 | 康瓦尔语 | cor | 否 | 科萨语 | xho | 是 | |
科西嘉语 | cos | 否 | 克里克语 | cre | 否 | 克里米亚鞑靼语 | cri | 否 | |
克林贡语 | kli | 否 | 克罗地亚语 | hrv | 是 | 克丘亚语 | que | 否 | |
克什米尔语 | kas | 否 | 孔卡尼语 | kok | 否 | 库尔德语 | kur | 是 | |
L | 拉丁语 | lat | 是 | 老挝语 | lao | 否 | 罗马尼亚语 | rom | 是 |
拉特加莱语 | lag | 否 | 拉脱维亚语 | lav | 是 | 林堡语 | lim | 否 | |
林加拉语 | lin | 否 | 卢干达语 | lug | 否 | 卢森堡语 | ltz | 否 | |
卢森尼亚语 | ruy | 否 | 卢旺达语 | kin | 是 | 立陶宛语 | lit | 是 | |
罗曼什语 | roh | 否 | 罗姆语 | ro | 否 | 逻辑语 | loj | 否 | |
M | 马来语 | may | 是 | 缅甸语 | bur | 是 | 马拉地语 | mar | 否 |
马拉加斯语 | mg | 是 | 马拉雅拉姆语 | mal | 是 | 马其顿语 | mac | 是 | |
马绍尔语 | mah | 否 | 迈蒂利语 | mai | 是 | 曼克斯语 | glv | 否 | |
毛里求斯克里奥尔语 | mau | 否 | 毛利语 | mao | 否 | 孟加拉语 | ben | 是 | |
马耳他语 | mlt | 是 | 苗语 | hmn | 否 | ||||
N | 挪威语 | nor | 是 | 那不勒斯语 | nea | 否 | 南恩德贝莱语 | nbl | 否 |
南非荷兰语 | afr | 是 | 南索托语 | sot | 否 | 尼泊尔语 | nep | 是 | |
P | 葡萄牙语 | pt | 是 | 旁遮普语 | pan | 是 | 帕皮阿门托语 | pap | 否 |
普什图语 | pus | 否 | |||||||
Q | 齐切瓦语 | nya | 否 | 契维语 | twi | 否 | 切罗基语 | chr | 否 |
R | 日语 | jp | 是 | 瑞典语 | swe | 是 | |||
S | 萨丁尼亚语 | srd | 否 | 萨摩亚语 | sm | 否 | 塞尔维亚-克罗地亚语 | sec | 否 |
塞尔维亚语 | srp | 是 | 桑海语 | sol | 否 | 僧伽罗语 | sin | 是 | |
世界语 | epo | 是 | 书面挪威语 | nob | 是 | 斯洛伐克语 | sk | 是 | |
斯洛文尼亚语 | slo | 是 | 斯瓦希里语 | swa | 是 | ||||
索马里语 | som | 是 | 塞尔维亚语(西里尔) | src | 否 | ||||
T | 泰语 | th | 是 | 土耳其语 | tr | 是 | 塔吉克语 | tgk | 是 |
泰米尔语 | tam | 是 | 他加禄语 | tgl | 是 | 提格利尼亚语 | tir | 否 | |
泰卢固语 | tel | 是 | 突尼斯阿拉伯语 | tua | 否 | 土库曼语 | tuk | 否 | |
W | 乌克兰语 | ukr | 是 | 瓦隆语 | wln | 是 | 威尔士语 | wel | 是 |
文达语 | ven | 否 | 沃洛夫语 | wol | 否 | 乌尔都语 | urd | 是 | |
X | 西班牙语 | spa | 是 | 希伯来语 | heb | 是 | 希腊语 | el | 是 |
匈牙利语 | hu | 是 | 西弗里斯语 | fry | 是 | 西里西亚语 | sil | 否 | |
希利盖农语 | hil | 否 | 下索布语 | los | 否 | 夏威夷语 | haw | 否 | |
新挪威语 | nno | 是 | 西非书面语 | nqo | 否 | 信德语 | snd | 否 | |
修纳语 | sna | 否 | 宿务语 | ceb | 否 | 叙利亚语 | syr | 否 | |
巽他语 | sun | 否 | |||||||
Y | 英语 | en | 是 | 印地语 | hi | 是 | 印尼语 | id | 是 |
意大利语 | it | 是 | 越南语 | vie | 是 | 意第绪语 | yid | 否 | |
因特语 | ina | 否 | 亚齐语 | ach | 否 | 印古什语 | ing | 否 | |
伊博语 | ibo | 否 | 伊多语 | ido | 否 | 约鲁巴语 | yor | 否 | |
亚美尼亚语 | arm | 是 | 伊努克提图特语 | iku | 否 | ||||
伊朗语 | ir | 否 | |||||||
Z | 中文(简体) | zh | 是 | 中文(繁体) | cht | 是 | 中文(文言文) | wyw | 是 |
中文(粤语) | yue | 是 | 扎扎其语 | zaz | 否 | 中古法语 | frm | 否 | |
祖鲁语 | zul | 否 | 爪哇语 | jav | 否 | ||||
错误码列表
当翻译结果无法正常返回时,请参考下表处理:
错误码 | 含义 | 解决方案 |
52000 | 成功 | |
52001 | 请求超时 | 请重试 |
52002 | 系统错误 | 请重试 |
52003 | 未授权用户 | 请检查appid是否正确或者服务是否开通 |
54000 | 必填参数为空 | 请检查是否少传参数 |
54001 | 签名错误 | 请检查您的签名生成方法 |
54003 | 访问频率受限 | 请降低您的调用频率,或进行身份认证后切换为高级版/尊享版 |
54004 | 账户余额不足 | 请前往管理控制台为账户充值 |
54005 | 长query请求频繁 | 请降低长query的发送频率,3s后再试 |
58000 | 客户端IP非法 | 检查个人资料里填写的IP地址是否正确,可前往开发者信息-基本信息修改 |
58001 | 译文语言方向不支持 | 检查译文语言是否在语言列表里 |
58002 | 服务当前已关闭 | 请前往管理控制台开启服务 |
90107 | 认证未通过或未生效 | 请前往我的认证查看认证进度 |
词典、语音合成资源
词典和语音合成资源为企业尊享版用户专属增值服务。如需使用,请先进行企业认证并开通尊享版服务,之后在开发者信息—通用翻译API—服务信息处申请开通词典或语音合成资源,请详细注明您的使用场景,审核通过后即可使用。
资源开通后,API 翻译结果中将默认附带 dict(词典)和 tts(语音合成)字段,仅对中英、英中互译有效。
词典资源:
词典分中英词典,由于每个词属性不同,词典结果不一定包含所有部分。
如源语言为中文,词典数据包括:拼音、词性、中文释义、英文释义、近义词等资源。
如源语言为英文,词典数据包括:英文释义、中文释义、音标、核心词汇类别等。
注:单个 query 需为词、词组或短语,如 query 为句子,则 dict 字段为空。
语音合成资源:
语音合成资源包含 query 原文、译文的发音,以 mp3 文件格式提供。
注:单个query内不支持分段,只有1段且字符数量不超过200的query才会返回tts字段。
自定义术语库
自定义术语库是百度翻译最新推出的 API 增值服务,如果您认为通用翻译API对于某些术语翻译不准确,可在“管理控制台-我的术语库”页面填写您认为正确的原文和译文,启用术语库,并在接口 URL 增加“&action=1”,即可在翻译结果中看到干预效果(提交后需等待 10 分钟方可生效)。
需要提醒您的是:因翻译模型并非对术语的一一替换,而是将您填写的术语翻译与原翻译进行对比和计算。如您填写的翻译与原译文差异过大,则可能导致干预后结果有错乱。此外,术语干预仅适用于专有名词、术语的自定义,目前暂不支持针对 HTML 代码(如<p> <div>)原样输出,即:您暂时无法在原文和译文都填写英文单词“text”。
常见问题:
1. 如何在一次请求中翻译多个单词或者多段文本?
您可以在发送的字段 q 中用换行符(在多数编程语言中为转义符号 \n。其中 \n 是需要能被程序解析出来的换行符而不是字符串 \n),您可以用换行符来分隔要翻译的多个单词或者多段文本,这样您就能得到多段文本独立的翻译结果了。注意在发送请求之前需对 q 字段做 URL encode!
2. 什么是URL encode?
网络标准RFC 1738规定了URL中只能使用英文字母、阿拉伯数字和某些标点符号,不能使用其他文字和符号。如果您需要翻译的文本里面出现了不在该规定范围内的字符(比如中文),需要通过URL encode将需要翻译的文本做URL编码才能发送HTTP请求。大部分编程语言都有现成的URL encode函数,具体使用方法可以针对您使用的编程语言自行搜索。
3. 通用翻译API中,字符数量如何统计?
字符数量的统计以翻译的源语言字符长度为标准。一个汉字、一个英文字母、一个标点符号等均记为一个字符。空格、html标签等均计入在内。
4. 单次翻译请求是否有字符数限制?
为保证您的使用体验,请将单次翻译文本长度限定为6000字节以内(汉字约为2000个字符)。此外,高峰时期单次请求文本过长或将导致翻译超时。您可将query分多次请求。
5. 为什么我的请求总是返回签名错误(错误码54001)?
54001表示签名错误,请检查按照如下步骤检查您的签名生成方法是否正确:
1. appid+q+salt+密钥 拼接成的字符串做MD5得到32位小写的sign,确保要翻译的文本q为UTF8格式;
2. 在生成签名拼接 appid+q+salt+密钥 字符串时,q不需要做URL encode,在生成签名之后,发送HTTP请求之前才需要对要发送的待翻译文本字段q做URL encode。很多开发者遇到签名报错均是由于拼接sign前就做了URL encode,或在拼接url时对query做了两次urlencode。如有不明白可前往 https://tool.chinaz/tools/urlencode.aspx 验证;
3. 如果您无法确认自己生成签名的结果是否正确,可以将您生成的签名结果和在MD5在线加密 - MD5加密工具 - MD5在线生成中生成的常规md5加密-32位小写签名结果对比;
4. 如您使用POST方式传送,Content-Type请指定为:application/x-www-form-urlencoded;
5. 请参考上方各语言Demo代码文档仔细检查。
6. 为什么我的请求会返回 54003?
54003 表示请求频率超限,请降低您的请求频率。
对于标准版服务,您的 QPS(每秒请求量)=1,如需更大频率,请先进行身份认证,认证通过后可切换为高级版(适用于个人,QPS=10)或尊享版(适用于企业,QPS=100)
7. 为什么我的请求会返回 52001?
52001 表示请求超时,请检查按照如下步骤检查您的签名生成方法是否正确:
1. 您传入的 query 长度是否超长?建议将原文采用"\n"分段请求;
2. 如间隔一段时间再次请求,是否可正常返回结果?如果不可以,请检查您所填写的原文或译文语种是否在支持的语种列表里。
8. 为什么我的请求会返回58003?
因黑产采用不正当手段收集用户APPID及密钥,由此产生的盗刷字符量现象日益猖獗,系统风控增加了 IP 校验规则,如同一 IP 当日使用多个 APPID 发送翻译请求,则该IP将被封禁当日请求权限,次日解封。
但由于 IP 多变,应用场景复杂,难免出现误伤正常使用的情况。如您属正常使用,但出现 58003 的提示,请发送邮件至 translate_api@baidu,同时提供如下信息。我方在收到邮件后将与您取得联系,核实后将解除封禁。
公司名称:
产品名称:
联系人:
联系方式:
服务器IP:
APPID:
注:
1)如提供信息不全,将影响审核通过率。
2)请不要将您的 APPID 及密钥泄露出去,也不要填写到任何第三方软件中,包括“SCITranslate”、“微信学英语”、“Potplayer”等软件以及各类计算机辅助翻译工具插件。如因此造成密钥泄露形成经济损失,或因此被封禁,百度翻译将有权拒绝解封。
9. 如果我需要翻译整个网页,尖括号内的标签无法原样输出,怎么办?
翻译API会将传入的所有字符串当做可翻译字符,目前暂时无法区分哪些部分需原样保留,因此 API 不适合直接处理 HTML 文件。您可将 HTML 文件进行译前处理,抽取出待翻译文本,传入 API 翻译后再回填。
10. 是否支持对译文中的术语结果进行修改?
已认证用户可进入“管理控制台→ 我的术语库”维护术语列表,同时开通“干预通用翻译API结果”。开通后,您将可对译文中的术语翻译结果进行优化和修正。请注意:干预通用翻译API结果将可能导致翻译延时增长。因此在无需干预结果时可将开关关闭。
如术语干预功能无法满足您的需要,或有更多意见或建议,可联系translate_api@baidu。
11. 我应该如何获取词典、语音合成资源结果?
接入文档与通用翻译API一致,接入流程上无变化。与未开通词典、语音合成服务相比,仅在返回结果处增加 tts、dict 字段,请注意辨别字段名称。
举例:
(1)query=apple,语言方向为英到中
未接入资源时,返回结果为:
{
"from": "en",
"to": "zh",
"trans_result": [
{
"src": "apple",
"dst": "苹果"
}
]
}
接入词典、语音合成资源后,返回结果为:
{
"from": "en",
"to": "zh",
"trans_result": [
{
"src": "apple",
"dst": "苹果",
"src_tts": "https:\/\/fanyiapp.cdn.bcebos\/api\/tts\/95e906875b87d342d7325a36a4e1ab42.mp3",
"dst_tts": "https:\/\/fanyiapp.cdn.bcebos\/api\/tts\/62f4ff87617655bc1f65e24cf4ed4963.mp3",
"dict": "{\"lang\":\"1\",\"word_result\":{\"simple_means\":{\"word_name\":\"apple\",\"from\":\"original\",\"word_means\":[\"苹果\"],\"exchange\":{\"word_pl\":[\"apples\"]},\"tags\":{\"core\":[\"高考\",\"考研\"],\"other\":[\"\"]},\"symbols\":[{\"ph_en\":\"ˈæpl\",\"ph_am\":\"ˈæpl\",\"parts\":[{\"part\":\"n.\",\"means\":[\"苹果\"]}],\"ph_other\":\"\"}]}}}"
}
]
}
(2)query=中国,语言方向为中到英
未接入资源时,返回结果为:
{
"from": "zh",
"to": "en",
"trans_result": [
{
"src": "中国",
"dst": "China"
}
]
}
接入词典、语音合成资源后,返回结果为:
{
"from": "zh",
"to": "en",
"trans_result": [
{
"src": "中国",
"dst": "China",
"src_tts": "https:\/\/fanyiapp.cdn.bcebos\/api\/tts\/d943b8e0e31e8d0ea8879dde5d41f016.mp3",
"dst_tts": "https:\/\/fanyiapp.cdn.bcebos\/api\/tts\/2e2312a1d33e2ff453f92d5d95277e13.mp3",
"dict": "{\"lang\":\"0\",\"word_result\":{\"simple_means\":{\"symbols\":[{\"word_symbol\":\"zhōng guó\",\"parts\":[{\"part_name\":\"\",\"means\":[{\"text\":\"China\",\"part\":\"n.\",\"word_mean\":\"China\",\"means\":[\"中国\"]},{\"text\":\"Sino-\",\"part\":\"comb.\",\"word_mean\":\"Sino-\",\"means\":[\"中国的\",\"中国人(的)\"]}]}]}],\"word_name\":\"中国\",\"from\":\"CEDict\",\"word_means\":[\"China\",\"Sino-\"]}}}"
}
]
}
12. 我已开通词典、语音合成资源,但不想在结果中呈现,应该怎么办?
如需隐藏词典、语音合成信息,可在拼接请求参数时附加"&dict=1&tts=1",例如,如仅需隐藏tts字段,完整请求为:
http://api.fanyi.baidu/api/trans/vip/translate?q=apple&from=en&to=zh&appid=2015063000000001&salt=1435660288&sign=f89f9594663708c1605f3d736d01d2d4&tts=1
13. 我怎样开通“我的术语库”功能?
“我的术语库”功能面向个人及企业认证用户开放,您需首先前往“开发者信息”处完成身份认证,认证后即可在管理控制台看到“我的术语库”入口。目前自定义术语功能已开通“中文”和“英语”两个语种,更多语种需求,请发送邮件至translate_api@baidu告诉我们。
14. 为什么我添加了术语却看不出效果?
添加术语却看不出效果,可能出于以下几个原因:
1. 添加或修改术语后,需要大约 10 分钟的生效时间,如果您是刚刚修改过术语,请您耐心等候生效;
2. 在拼接接口 URL 时,需要在输入参数中增加“action=1”,详见输入参数小节;
3. 翻译系统判断您定义的翻译与原翻译差异过大。由于神经网络翻译模型中,术语的定制化干预功能并非对翻译结果的生硬替换,而是类似于“调优”。如果您对术语的定义与原释义含义差距过大,会导致经计算过后的出现不可控的翻译结果。如您对术语干预效果不满意,请与translate_api@baidu联系。
- 实现代码
import requests
import hashlib
inwd=input("输入你要翻译的文字(默认英译中):")
def is_all_chinese(strs):
for _char in strs:
if not '\u4e00' <= _char <= '\u9fa5':
return False
return True
#print(is_all_chinese(inwd))#判断是否全部为中文
is_chinese=is_all_chinese(inwd)
if is_chinese==True:
ffrom="zh"
ttram="en"
print("系统检测到你输入的全部为中文将自动翻译为英文!!")
else:
ffrom="en"
ttram="zh"
app_id="20201223001037485"#你的百度接口的app_id
app_password="K3456Mdf6H25wZIHUPw"#对应秘钥
salt="1435660288"#随机数
ysmd=app_id+inwd+salt+app_password#需要将百度翻译app_id翻译接口id和搜索关键字+随机数+秘钥进行MD5加密转换
head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"}
def md5value(key):
input_name = hashlib.md5()
input_name.update(key.encode("utf-8"))
return (input_name.hexdigest()).lower()
md5code=md5value(ysmd)
url_statr="http://api.fanyi.baidu/api/trans/vip/translate?q="+inwd+"&from="+ffrom+"&to="+ttram+"&appid=20201223001037485&salt=1435660288&sign="+md5code+"&tts=1&Content-Type=application/x-www-form-urlencoded"
reponse=requests.get(url_statr,headers=head).json()
result=reponse
print("翻译结果:"+result['trans_result'][0]['dst'])
4、实现效果
版权声明:本文标题:用python写的翻译器 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1725599360a1032268.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论