1. 程式人生 > >python3使用百度翻譯API實現自動翻譯

python3使用百度翻譯API實現自動翻譯

百度翻譯開放平臺

註冊登入,建立個人服務

在此不詳細贅述!(獲取APP ID和金鑰)
這裡寫圖片描述

檢視技術文件

需要注意的是:每個月的免費額度是200萬字符,不要超了,或者註冊多個賬戶。
這裡寫圖片描述

介面引數配置


def translate_api(text):
    """英文翻譯成中文"""
    appid = ''#你的id
    secretKey = ''
#你的金鑰 myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate' q = text fromLang = 'en' toLang = 'zh' salt = random.randint(32768, 65536) sign = appid+q+str(salt)+secretKey m1 = md5() m1.update(sign.encode("utf-8")) sign = m1.hexdigest() myurl = myurl+'?appid='
+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign return myurl

例項應用

翻譯一個單詞


import json
import random
import requests
import urllib.parse
from hashlib import md5



def translate_api(text):
    appid = ''
    secretKey = ''
myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate' q = text fromLang = 'en' toLang = 'zh' salt = random.randint(32768, 65536) sign = appid+q+str(salt)+secretKey m1 = md5() m1.update(sign.encode("utf-8")) sign = m1.hexdigest() myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign return myurl text = 'summary' myurl = translate_api(text) response = requests.get(myurl) rans_result = json.loads(response.text)['trans_result'][0]['dst'] print(rans_result)
總結

翻譯一句話


text = 'A rich man is absolutely willful'
myurl = translate_api(text)
response = requests.get(myurl)
rans_result = json.loads(response.text)['trans_result'][0]['dst']
print(rans_result)
有錢人絕對是任性的。

翻譯一段話

這麼專業的學術用語,都可以流暢的翻譯,以後再也不用怕讀英文文獻了……

text = 'This gene encodes a cytokine distantly related to type I interferons and the IL-10 family. This gene interleukin 28A (IL28A) and interleukin 29 (IL29) are three closely related cytokine genes that form a cytokine gene cluster on a chromosomal region mapped to 19q13. Expression of the cytokines encoded by the three genes can be induced by viral infection. All three cytokines have been shown to interact with a heterodimeric class II cytokine receptor that consists of interleukin 10 receptor beta (IL10RB) and interleukin 28 receptor alpha (IL28RA). [provided by RefSeq Jul 2008]'
myurl = translate_api(text)
response = requests.get(myurl)
rans_result = json.loads(response.text)['trans_result'][0]['dst']
print(rans_result)
該基因編碼與I型干擾素和IL-10家族遠親相關的細胞因子。該基因白細胞介素28AIL28A)和白細胞介素29(IL29)是三個密切相關的細胞因子基因,它們在染色體上形成細胞因子基因簇,定位為19q13。三種基因編碼的細胞因子的表達可通過病毒感染誘導。所有三種細胞因子都顯示與由白細胞介素10受體β(IL10RB)和白細胞介素28受體α(IL28RA)組成的異二聚II類細胞因子受體相互作用。[由Refsq Jul 2008提供]