標籤:response 對象 連結 mda print ade https from head
說明:
1. 匯入三個模組,urllib.request.urlopen用來開啟url連結,urllib.parse的urlencode方法將瀏覽器network裡的data對象轉為urlopen的第二個參數data,json.loads()方法把response.read返回的字串轉為json格式。
2. data對象是從審查元素的network裡的translate?開頭的Headers裡最下面的formdata裡的所有屬性。
3. urlopen(url,data)裡的data要先encode編碼成utf-8,得到傳回值後的result要再decode解碼回utf-8。
1 import urllib.request 2 import urllib.parse 3 import json 4 5 userinput = "" 6 while userinput != "exit": 7 userinput = input("輸入要翻譯的話(exit退出):") 8 url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=https://www.baidu.com/link" 9 data = {}10 data["type"] = "AUTO"11 data["i"] = userinput12 data["doctype"] = "json"13 data["xmlVersion"] = "1.8"14 data["keyfrom"] = "fanyi.web"15 data["ue"] = "UTF-8"16 data["action"] = "FY_BY_CLICKBUTTON"17 data["typoResult"] = "true"18 data = urllib.parse.urlencode(data).encode("utf-8")19 response = urllib.request.urlopen(url,data)20 result = response.read().decode("utf-8")21 result = json.loads(result)22 result = result["translateResult"][0][0]["tgt"]23 print(result)
python學習筆記(6)--有道翻譯爬蟲