Python 小工具:调用「百度翻译API」实现英汉互译及多语言翻译

Python 小工具:调用「百度翻译 API」实现英汉互译及多语言翻译

官方 Demo 是 Python 2 版本的,笔者基于 Python 3 实现,并简化请求翻译结果的过程、扩展功能

前段时间写的小脚本,得空整理一下和大家交流学习

API 简介

  • 什么是百度翻译开放平台?
    百度翻译开放平台是百度翻译面向广大开发者提供开放服务的平台。服务涵盖:通用翻译API、定制化翻译API、语音翻译SDK、拍照翻译SDK等,并持续更新中。
  • 通用翻译 API
    通用翻译API支持28种语言互译,覆盖中、英、日、韩、西、法、泰、阿、俄、葡、德、意、荷、芬、丹等;支持28种语言的语种检测。您只需调用通用翻译API,传入待翻译的内容,并指定要翻译的源语言(支持源语言语种自动检测)和目标语言,即可得到相应的翻译结果。任何第三方应用或网站都可以通过使用通用翻译API为用户提供实时优质的多语言翻译服务,提升产品体验。
  • 语种识别 API
    语种识别API可识别给出文本的语种,并返回识别结果。首批支持中文、英语、日语、韩语、泰语、越南语等六个语种的语种识别。

摘自官网介绍,官网还有更多高级(shou fei)功能的介绍,可移步了解详情 →

过程详解

通用翻译 API 采用全流程自助申请的模式:
    点击网站上方的“登录”按钮,以百度账号登录平台;
    在产品服务页面点击“立即使用”,按照页面提示信息注册成为开发者,即可获得APPID和密钥信息。

  • 首先需要去百度翻译开放平台注册为开发者、申请 通用翻译 APIAPI Key
  • 通过 HTTP 接口调用通用翻译 API,传入待翻译的内容,并指定要翻译的源语言和目标语言种类,就可以得到相应的翻译结果。
  • 向通用翻译 API HTTP 地址:http://api.fanyi.baidu.com/api/trans/vip/translate 通过POST或GET方法发送下列字段即可访问服务:
    字段
  • 语言列表:(源语言语种不确定时可设置为 auto,目标语言语种不可设置为 auto)
    语言列表
  • 其中, sign 是使用 MD5 算法生成的一段长度为 32位的字符串,具体方法如下:
    • 1.准备好请求参数中的 appid、q、salt 以及平台分配的密钥;
    • 2.按照 appid+q+salt+密钥 的顺序拼接得到字符串1;
    • 3.对字符串1计算 MD5 值即可得到32位小写的 sign
  • 返回结果是json格式,包含以下字段:(其中 trans_result 包含了 src 和 dst 字段)
字段名 类型 描述
from TEXT 翻译源语言
to TEXT 译文语言
trans_result MIXED LIST 翻译结果
src TEXT 原文
dst TEXT 译文

    例如:

		{
   
		    "from":"en",
		    "to":"zh",
		    "trans_result":[
		        {
   
		            "src":"apple",
		       
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用百度翻译API,您需要先在百度翻译开放平台注册并创建一个应用程序,然后获取应用程序的APP ID和密钥。 接着,在Python调用百度翻译API接口需要使用requests库,以下是一个示例代码: ```python import requests import json url = 'https://fanyi.baidu.com/v2transapi' app_id = 'your app id' secret_key = 'your secret key' def translate(text, from_lang, to_lang): data = { 'from': from_lang, 'to': to_lang, 'query': text, 'transtype': 'translang', 'simple_means_flag': '3', 'sign': '', 'token': '', } sign = app_id + text + str(1435660288) + secret_key sign = hashlib.md5(sign.encode()).hexdigest() data['sign'] = sign data['token'] = 'e8c37d1a59fdefa0e7e9e012c2261f48' headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36', 'Referer': 'https://fanyi.baidu.com/', 'Origin': 'https://fanyi.baidu.com', 'Host': 'fanyi.baidu.com', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'Accept-Encoding': 'gzip, deflate, br', 'Accept-Language': 'zh-CN,zh;q=0.8,en;q=0.6', 'Cookie': 'BAIDUID=your Baidu ID', } response = requests.post(url, headers=headers, data=data) content = json.loads(response.text) return content['trans_result']['data'][0]['dst'] ``` 在上面的代码中,您需要将“your app id”和“your secret key”替换为您自己的百度翻译应用程序的APP ID和密钥。还需要将“your Baidu ID”替换为您自己的百度ID。 然后,您可以调用“translate”函数并传递要翻译的文本,源语言和目标语言作为参数。例如: ```python text = 'Hello, World!' from_lang = 'en' to_lang = 'zh' translation = translate(text, from_lang, to_lang) print(translation) ``` 这将输出“你好,世界!”(Hello, World!的中文翻译)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值