1 #/usr/bin/env python3 2 #coding=utf8 3 4 """百度翻譯api功能實現函數,本模塊基於Python3.x實現,getTransResult(q)中參數q是需被翻譯的內容,目前該函數的源語言默認英文,目標語言默認簡體中文""" 5 6 7 import http.client 8 import hashlib 9 import urllib 10 import random 11 import demjson 12 13 def getTransResult(q): 14 15 """ 16 從百度翻譯API獲取源語言翻譯結果的實現函數。get請求字符串構造具體請參照百度翻譯開發者文檔 17 fromLang&&toLang分別是源語言與目標語言,現階段默認為英語與簡體中文,后期可根據需求作為函數參數動態傳入 18 """ 19 20 appid = 'xxxxxxxxxxxx' #開發者id 21 secretKey = 'xxxxxxxxxx' #開發者密鑰 22 23 24 httpClient = None 25 myurl = '/api/trans/vip/translate' 26 #q = 'hello baidu trans' #要翻譯的內容 27 fromLang = 'en' #源語言 28 toLang = 'zh' #目標語言 29 salt = random.randint(32768, 65536) #隨機數 30 31 sign = appid+q+str(salt)+secretKey #需要生成md5碼的字符串 32 33 m1 = hashlib.md5(sign.encode(encoding='utf-8')) 34 sign = m1.hexdigest() 35 myurl = myurl+'?appid='+appid+'&q='+urllib.parse.quote(q)+'&from='+fromLang+'&to='+toLang+'&salt='+str(salt)+'&sign='+sign #get請求字符串 36 37 try: 38 httpClient = http.client.HTTPConnection('api.fanyi.baidu.com') 39 httpClient.request('GET', myurl) 40 #response是HTTPResponse對象 41 response = httpClient.getresponse() #獲取返回結果 42 mresult = demjson.decode(response.read()) #json解碼 43 #print(mresult["trans_result"][0]["dst"]) 44 return mresult["trans_result"][0]["dst"] 45 46 except Exception as e: 47 print(e) 48 finally: 49 if httpClient: 50 httpClient.close() 51 52 53 if __name__ == "__main__": 54 print(getTransResult("hello"))
由於百度翻譯不提供音標、發音之類的內容很是不方便,在百度翻譯頁面上發現數據來自金山詞霸,於是乎用金山詞霸看看
1 #/usr/bin/env python3 2 #coding=utf8 3 4 “”“金山詞霸版”“” 5 6 import http.client 7 import hashlib 8 import urllib 9 import random 10 import json 11 12 def getTransResult(q,type = "json"): 13 14 15 16 httpClient = None 17 myurl = '/api/trans/vip/translate' 18 #q = 'hello baidu trans' #要翻譯的內容 19 myurl = "/api/dictionary.php?w="+q+"&type="+type+"&key=xxxxxxxxxxxx" #開發者Key 20 21 try: 22 httpClient = http.client.HTTPConnection('dict-co.iciba.com') 23 httpClient.request('GET', myurl) 24 #response是HTTPResponse對象 25 response = httpClient.getresponse() #獲取返回結果 26 mresult = json.loads(response.read().decode("utf-8")) 27 28 29 #print(mresult) 30 return mresult 31 32 except Exception as e: 33 print(e) 34 finally: 35 if httpClient: 36 httpClient.close() 37 38 39 if __name__ == "__main__": 40 print(getTransResult("hello")) 41
要啥有啥感覺棒棒噠