python调用百度翻译

# -*- coding: UTF-8 -*-
import httplib
import time
import md5
import urllib
import random
import json


def translate(text):
    appid = '20151113000005349'
    secretKey = 'osubCEzlGjzvw8qdQc41'

    httpClient = None
    myurl = '/api/trans/vip/translate'
    fromLang = 'cht'#繁体
    # fromLang = 'auto'#自动检测
    toLang = 'zh'
    salt = random.randint(32768, 65536)

    sign = appid + text + str(salt) + secretKey
    m1 = md5.new()
    m1.update(sign)
    sign = m1.hexdigest()
    myurl = myurl + '?appid=' + appid + '&q=' + urllib.quote(text) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(
        salt) + '&sign=' + sign

    try:
        httpClient = httplib.HTTPConnection('api.fanyi.baidu.com')
        httpClient.request('GET', myurl)

        # response是HTTPResponse对象
        response = httpClient.getresponse()
        response_text = response.read()
        # print response_text
        response_json = json.loads(response_text)
        re_text = response_json['trans_result'][0]['dst']
        return re_text
    except Exception, e:
        print "error",e
    finally:
        if httpClient:
            httpClient.close()

if __name__ == '__main__':
     text = '新北市十二年國民基本教育資訊網'
#     text = 'クローラ'
     print translate(text)
#     time.sleep(1)
### 如何使用 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、付费专栏及课程。

余额充值