1. 程式人生 > >利用python進行有道翻譯

利用python進行有道翻譯

# -*- coding: UTF-8 -*-
from urllib import request
from urllib import parse
import json

def youdao(English):
    Request_URL='http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'
    From_Data={}
    # From_Data['type']=AUTO
    From_Data['i']=English
    From_Data['from']='AUTO'
    From_Data['to']='AUTO'
    From_Data['smartresult']='dict'
    From_Data['client']='fanyideskweb'
    From_Data['salt']='1525344419877'
    From_Data['sign']='721bbfed345b0d955d8691221ed2b1e1'
    From_Data['doctype']='json'
    From_Data['version']='2.1'
    From_Data['keyfrom']='fanyi.web'
    From_Data['action']='FY_BY_REALTIME'
    From_Data['typoResult']='false'
    data=parse.urlencode(From_Data).encode('utf-8')
 #當字串資料以url的形式傳遞給web伺服器時,字串中是不允許出現空格和特殊字元,因此我們需要轉化格式
    response=request.urlopen(Request_URL,data)
#urlopen是urlopen裡的一個方法函式通過網址URL來獲取資料:urlopen(url, data=None, proxies=None)
#引數 url 表示遠端資料的路徑,一般是 http 或者 ftp 路徑。
#引數 data 表示以 get 或者 post 方式提交到 url 的資料。
#引數 proxies 表示用於代理的設定
    html=response.read().decode('utf-8')
    translate_results=json.loads(html) #將json字串編碼為python物件
    translate_results = translate_results['translateResult'][0][0]['tgt'] #找到翻譯結果,由translate的結果而來
    print(translate_results)
if __name__ == "__main__":
    youdao('English')


如果出現KeyError: 'translateResult',是因為URL地址為
Request URL:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule

translate_o?中的_o去掉就行了