天天看點

Python3 百度翻譯api調用

2018/10/24~3

學習英語,當然得是要四六級的單詞本呀,是以前面爬了這幾年的四六級的考試題,拆成了一個單詞本,但是單詞本沒中文翻譯豈不是很不爽,這就要請求翻譯了呀,但是百度翻譯api提供的是python2的模闆。。。

這裡記錄一下修改後python3的使用模闆

#翻譯
#/usr/bin/env python
#coding=utf8
import http.client
import hashlib
import urllib.request
import random
import json

appid = '' #你的appid
secretKey = '' #你的密鑰

httpClient = None
#myurl = '/api/trans/vip/translate'
myurl = 'http://api.fanyi.baidu.com/api/trans/vip/translate'
#輸入的單詞
q = 'apple'

#輸入英文輸出中文
fromLang = 'en'
toLang = 'zh'
salt = random.randint(32768, 65536)
sign = appid+q+str(salt)+secretKey
m1 = hashlib.new('md5')
m1.update(sign.encode('utf-8'))
sign=m1.hexdigest()
#m1 = hashlib.new('md5',sign).hexdigest()
#m1.update(sign)
#sign = m1.hexdigest()
myurl = myurl+'?q='+urllib.request.quote(q)+'&from='+fromLang+'&to='+toLang+'&appid='+appid+'&salt='+str(salt)+'&sign='+sign
try:
    httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')
    httpClient.request('GET', myurl)
    #response是HTTPResponse對象
    response = httpClient.getresponse()
    result=response.read()
    
    data = json.loads(result)
    wordMean=data['trans_result'][0]['dst']
    print(wordMean)

except Exception as e:
    print(e)
finally:
    if httpClient:
        httpClient.close()
           

一次發送多個單詞的方式。。。還是見幫助文檔吧,稍微改一下就行了