Python调用微软翻译API实现文本批量翻译


作者:Harkerbest

声明:本文章为原创文章,本文章永久链接:https://www.harkerbest.cn/?p=318,转载请注明原文地址,盗版必究!!!


  今天站长给大家分享Python通过调用翻译API来实现批量翻译的教程。试想你开发了一个项目,它必须支持多种语言,但是你的翻译能你有限,又不想请专业翻译,那么这个时候,你可以通过批量翻译的方法实现支持多种语言的语言包。下面开始教程:

1.查看翻译API的文档获取使用方法

  市面上的翻译API很多,这里以微软提供的翻译API为例。下面是从微软官方获取到的翻译API的相关信息:

  • 免费请求地址:https://cn.bing.com/ttranslatev3?isVertical=1&&IG=FFFF11FE1F4E4CD89E3312461FC1032B&IID=translator.5028.14
  • 请求方式:post
  • 返回数据类型:json
参数名称参数类型用法描述是否必须
fromlang字符串翻译源文本的语言类型
text字符串翻译源文本
to字符串目标语言类型

  其中fromlang和to需要提交相应的语言代码,相关的语言代码请访问:https://docs.microsoft.com/zh-cn/azure/cognitive-services/translator/language-support查看。更多具体的参数和使用方法请访问微软官方文档:https://docs.microsoft.com/zh-cn/azure/cognitive-services/translator/

2.使用Python调用API实现批量翻译

  根据前面提到的API的相关参数,可以构造如下代码实现翻译功能,我们需要将中文的“你好”翻译为英文的“Hello”。(由于微软官方提供的API需要登陆微软官网获取token,因此站长给大家分享的是通过抓包分析获得的免费API,不过调用此API还需要设置UA伪装成浏览器,否则就会提示错误,下面的代码中包括了设置UA的方法)

 import requests #用于发起post请求
 url='https://cn.bing.com/ttranslatev3?isVertical=1&&IG=FFFF11FE1F4E4CD89E3312461FC1032B&IID=translator.5028.14' #请求地址
 headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'} #设置请求头
 post_data={'fromlang':'zh-Hans','text':'你好','to':'en'} #设置请求参数
 result=requests.post(url,headers=headers).content.decode() #发出请求并将请求数据转换为str格式
 print(result)

  输出结果如下图所示:

%title插图%num
程序运行结果

  我们将它转换为更直观的形式:

%title插图%num

  图中的红色方框位置即为翻译的结果。接下来我们只需要使用Python自带的json库解析返回的json数据获取翻译文本即可。代码如下:

 import json
 data=json.loads(result) #将字符串转化为Python的列表和字典
 translate_text=data[0]['translations'][0]['text'] #从转化的数据中获取翻译文本
 print(translate_text)

  运行结果如下图所示:

%title插图%num
输出翻译文本

  到这里,我们就成功实现了Python的自动翻译了!相信聪明的读者们早就想到如何进行批量翻译了,我们只需要把需要翻译的文本添加到一个列表内,接着用for循环展开,对每个文本进行翻译即可。这里就不在阐述了。

结语:

  到这里,教程就结束啦,不知道帮到你没有呢。如果这篇教程对你有帮助,请转发给更多有需要的人,谢谢您的支持!最后,祝大家2021新春快乐!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

CAPTCHAis initialing...