# 無反爬 import urllib.parse import urllib.request import json content = input('請輸入需要翻譯的詞語:') # url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule' data = {} data['i']=content data['doctype']='json' data['keyfrom']='fanyi.web' data['typoResult']='true' data['from']='AUTO' data['to']='AUTO' data['smartresult']='dict' data['client']='fanyideskweb' data['salt']='1520416292076' data['sign']='41fe7ea28425a0a4ceb88ab4c8609d13' data['version']='2.1' data['action']='FY_BY_CLICKBUTTION' data['typoResult']='false' # 轉換格式 data = urllib.parse.urlencode(data).encode('utf-8') # 發送請求,帶data就是post,不帶data是get response = urllib.request.urlopen(url,data) # 轉碼 html = response.read().decode('utf-8') ta = json.loads(html) # json.loads()用於將str類型的數據轉成dict。
#參考 Json模塊dumps、loads、dump、load函數介紹 print(ta['translateResult'][0][0]['tgt'])
url中帶_o時,會提示{"errorCode":50}。 從其他地方發現刪除后可以正常運行,不知道原因。有知道的可以留個言。