【Python3爬蟲】有道翻譯
阿新 • • 發佈:2018-07-26
inpu handler ram lan chrome+ str sel text json
準備:Python3.5+Chrome+Pycharm
步驟:
(1)打開有道翻譯的網頁,然後鼠標右鍵檢查(或者按F12),再輸入一個單詞(例如book),在XHR選項中可以看到這條信息,也就是說我們要利用post把要翻譯的內容發送出去,然後再獲取返回的信息,就能得到翻譯的結果了。
(2)打開Pycharm,新建一個test.py,代碼如下:
import requests
def main():
txt = input("請輸入要翻譯的內容:")
data = {
"i": txt,
"from": "AUTO",
"to": "AUTO",
"smartresult": "dict",
"client": "fanyideskweb",
"doctype": "json",
"version": "2.1",
"keyfrom": "fanyi.web",
"action": "FY_BY_REALTIME",
"typoResult": "true"
}
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
res = requests.post(url, data=data)
js = res.json()
print("翻譯結果:" + js[‘translateResult‘][0][0][‘tgt‘] + ‘\n‘)
if __name__ == ‘__main__‘:
while True:
main()
我使用的是requests庫,這裏使用post請求返回的結果是一個字典:{‘translateResult‘: [[{‘tgt‘: ‘書‘, ‘src‘: ‘book‘}]], ‘errorCode‘: 0, ‘elapsedTime‘: 0, ‘type‘: ‘EN2ZH_CN‘},然後我們用[‘translateResult‘][0][0][‘tgt‘]把翻譯的結果提取出來就行了。
註意:http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule這個鏈接裏要把translate後面的_o去掉,如果不去掉,post請求返回的是‘errorCode‘:50,至於原因,我這個小白也不清楚==
【Python3爬蟲】有道翻譯