python调用百度翻译API

本文介绍如何使用百度翻译API进行大规模文本翻译,通过Python代码实现自动批量翻译英文至西班牙文,并保存翻译结果。文章涵盖API注册、密钥获取及Python代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先到百度翻译API官网上注册:
http://api.fanyi.baidu.com/api/trans/product/index
获取APP ID和秘钥,每月免费200万次翻译次数
运行以下Python3代码

import requests  
import string  
import time  
import hashlib  
import json 
import re 
import numpy as np  
api_url = "http://api.fanyi.baidu.com/api/trans/vip/translate"  
my_appid = '******'  #你的APP ID
cyber = '*******'  #你的秘钥
lower_case = list(string.ascii_lowercase)  
  
def requests_for_dst(word):  
    #init salt and final_sign  
    salt = str(time.time())[:10]  
    final_sign = str(my_appid)+word+salt+cyber  
    final_sign = hashlib.md5(final_sign.encode("utf-8")).hexdigest()  
    #区别en,zh构造请求参数  
    paramas = {  
            'q':word,  
            'from':'en',  # 源语言
            'to':'spa',   # 目标语言
            'appid':'%s'%my_appid,  
            'salt':'%s'%salt,  
            'sign':'%s'%final_sign  
            }  #翻译请求参数
    my_url = api_url+'?appid='+str(my_appid)+'&q='+word+'&from='+'en'+'&to='+'spa'+'&salt='+salt+'&sign='+final_sign
    response = requests.get(api_url,params = paramas).content  
    content = str(response,encoding = "utf-8")  
    json_reads = json.loads(content)  
    return json_reads['trans_result'][0]['dst']
      
    '''f_en = open('test_removed.txt', 'r')
    mystr = f_en.read()
    en_list= re.sub("[^\w]", " ", mystr).split()
    test_array=np.array(['',''])
    for i in range(999):
        row=np.array([en_list[i],requests_for_dst(en_list[i]).lower()])
        test_array=np.row_stack((test_array,row))
        print('百度翻译第%d'%(i+1)+'个单词完成!')
    np.save("test.npy", test_array)
    a=np.load("test.npy")
    print (a)'''
en_list = np.load("vocab/vocabEN-ES.npy")
vocab_array=np.array(['',''])
for i in range(en_list.shape[0]):
    #vocab_list[i].append(en_list[i])
    #vocab_list[i].append(requests_for_dst(en_list[i]))
    row=np.array([en_list[i][0],requests_for_dst(en_list[i][0])])
    vocab_array=np.row_stack((vocab_array,row))
    print('百度翻译第%d'%(i+1)+'个单词完成!')
vocab_array = np.delete(vocab_array,0,0)
np.save("vocabEN-ZH.npy", vocab_array)
a=np.load("vocabEN-ZH.npy")
print(a)
print(a.shape)

语言列表
源语言语种不确定时可设置为 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越南语
### 如何使用 Python 调用百度翻译 API 为了利用百度翻译 API 进行中英文互译,开发者需先注册并获取应用 ID 和密钥。之后可以通过发送 HTTP 请求的方式调用该服务。 #### 准备工作 确保已安装 `requests` 库,这有助于简化网络请求操作。如果尚未安装此库,则可通过 pip 安装: ```bash pip install requests ``` #### 示例代码 下面是一个简单的例子展示如何通过 POST 方法向百度翻译 RESTful API 发送请求,并处理返回的数据[^3]。 ```python import hashlib import random import time import requests def translate_baidu(q, appid, secretKey, fromLang='auto', toLang='en'): """ 使用百度翻译API进行文字翻译 参数: q (str): 待翻译的文字. appid (int): 开发者申请的应用ID. secretKey (str): 开发者申请的安全码. fromLang (str): 原文语种,默认自动检测. toLang (str): 翻译目标语言,默认英语. 返回值: str: 翻译后的文本. """ salt = str(random.randint(32768, 65536)) timestamp = str(int(time.time())) sign_raw = f"{appid}{q}{salt}{timestamp}{secretKey}" sign_md5 = hashlib.md5(sign_raw.encode('utf-8')).hexdigest() url = 'https://fanyi-api.baidu.com/api/trans/vip/translate' params = { 'q': q, 'from': fromLang, 'to': toLang, 'app_id': appid, 'salt': salt, 'sign': sign_md5, 'timestamp': timestamp } try: r = requests.post(url=url, data=params) result = r.json() if 'trans_result' not in result or len(result['trans_result']) == 0: raise Exception("Translation failed") dst_text = '\n'.join([item["dst"] for item in result.get('trans_result')]) return dst_text except Exception as e: print(f"Error occurred during translation: {e}") return None if __name__ == "__main__": APP_ID = '<Your App ID>' # 替换成自己的App ID SECRET_KEY = '<Your Secret Key>' # 替换成自己的Secret Key source_text = "你好世界" translated_text = translate_baidu(source_text, APP_ID, SECRET_KEY) if translated_text is not None: print(f"Original Text: {source_text}\nTranslated Text: {translated_text}") ``` 上述脚本定义了一个名为 `translate_baidu()` 的函数,它接受待翻译字符串和其他必要参数作为输入,并返回相应的翻译结果。注意,在实际部署前应替换 `<Your App ID>` 和 `<Your Secret Key>` 为真实的凭证信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值