概述
在工作上需要各个国家语言的翻译方面很多地方用的上。
获取API权限:
登录百度账号,在个人信息界面,包括修改密码、绑定手机、身份人证等
https://api.fanyi.baidu.com/api/trans/product/desktop?req=developer
百度翻译开放平台
在开发者中心:需要开通个人账号,在我的服务选项,选择通用文本翻译
申请好后,会有以下信息。
具体文档:通用翻译API接入文档
https://fanyi-api.baidu.com/doc/21
一、code
分别有三个模块Translater.py、APIConfig.py、Config_trans_lang.py
1、Translater.py代码
import hashlib
import randomimport requestsfrom APIConfig import APIConfigclass Translater:def __init__(self, config: APIConfig, from_lang: str, to_lang: str):self.__config = config # API配置self.__from_lang = from_lang # 原语言,可为autoself.__to_lang = to_lang # 目标语言,可为auto# 按百度API要求进行随机数生成def __make_salt(self):return random.randint(23212, 65536)# 按百度API要求连接要加密的文本def __make_md5_text(self, query, salt):return "{}{}{}{}".format(self.__config.appid,query,salt,self.__config.key)# 按百度API要求进行MD5加密def __make_signture(self, str, salt):md5 = hashlib.md5()md5.update(self.__make_md5_text(str, salt).encode('utf-8'))return md5.hexdigest()def __get_token(self, cookie):res = [2]headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36','Referer': 'https://fanyi.baidu.com/','Cookie': cookie}token_url = "https://fanyi.baidu.com/"session = requests.Session()session.headers = headersgtk = ''# get tokenfor i in range(3):response = session.get(token_url)token = re.findall("token: '(.*?)'", response.text)[0]gtk = re.findall('window.gtk = "(.*?)"', response.text)[0]res[0] = tokenres[1] = gtkreturn res# 发送post请求调用百度APIdef __post(self, query: str):timeout = 6000 #请求超时时间salt = self.__make_salt()sign = self.__make_signture(query, str(salt))headers = {"Content-Type": "application/x-www-form-urlencoded"}form_data = {"appid": self.__config.appid,"q": query,"from": self.__from_lang,"to": self.__to_lang,