python3使用百度翻譯API實現自動翻譯
阿新 • • 發佈:2018-11-25
註冊登入,建立個人服務
在此不詳細贅述!(獲取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家族遠親相關的細胞因子。該基因白細胞介素28A(IL28A)和白細胞介素29(IL29)是三個密切相關的細胞因子基因,它們在染色體上形成細胞因子基因簇,定位為19q13。三種基因編碼的細胞因子的表達可通過病毒感染誘導。所有三種細胞因子都顯示與由白細胞介素10受體β(IL10RB)和白細胞介素28受體α(IL28RA)組成的異二聚II類細胞因子受體相互作用。[由Refsq Jul 2008提供]