具体的sign加密逻辑,url拼接,语言代码和更多参数参考baidu官方文档-百度翻译开放平台
代码模版:
# Create by ruiyang in 2022/7/4 ~ Version: Python 3.9
import requests
import hashlib
import urllib.parse
import random
import json
# 所需的参数
url = 'https://api.fanyi.baidu.com/api/trans/vip/translate'
appid = '20220704001264376'
secretKey = 'kxSCkcqghAmRmLcWZK6W'
fromLang = 'zh'
toLang = 'wyw'
salt = random.randint(32768, 65536)
q = '我喜欢你'
# 拼接字符串后进行MD5加密,hexdigest十六进制,digest二进制
sign = appid + q + str(salt) + secretKey
# 字符串应该进行 utf-8 编码再加密
sign = hashlib.md5(sign.encode('utf-8')).hexdigest()
req_URL = f'https://api.fanyi.baidu.com/api/trans/vip/translate?q={urllib.parse.quote(q)}' \
f'&from={fromLang}&to={toLang}&appid={appid}&salt={salt}&sign={sign}'
# 请求和异常处理
try:
response = requests.get(req_URL)
except Exception as e:
print(e)
else:
res_dict = json.loads(response.text)
try:
print(res_dict['trans_result'][0]['dst'])
except Exception as e:
print(f'{e}\n{res_dict}')
返回的类型是json,注意q在进行md5加密时不要进行quote编码!!