python爬取有道翻譯出錯 {‘errorcode’:50}
阿新 • • 發佈:2018-12-11
import urllib.request import urllib.parse url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule" key=input("請輸入需要翻譯的文字:") formdata ={ "i": key, "from": "AUTO", "to": "AUTO", "smartresult": "dict", "client": "fanyideskweb", "salt": "1537698317221", "sign": "b569c8bf54bf1b0d71725726e7c1a5", "doctype": "json", "version": "2.1", "keyfrom": "fanyi.web", "action": "FY_BY_REALTIME", "typoResult": "false" } headers={ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"} data = urllib.parse.urlencode(formdata).encode(encoding='gbk') request = urllib.request.Request(url,data=data, headers = headers) repost = urllib.request.urlopen(request) html=repost.read().decode("utf-8") print(html)
將在審查元素中獲得的url中translate後面的_o去掉,錯誤就消失了,可以正常爬取。
data除了doctype鍵和i鍵不能去掉,其餘的即使刪除了也能正常執行翻譯。[此行待驗證]