有道翻译接口问题(续)
生活随笔
收集整理的這篇文章主要介紹了
有道翻译接口问题(续)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原博文地址:https://blog.csdn.net/qq_40962368/article/details/80620817
自從寫了上面的博文之后,很多人詢問我關于有道翻譯接口的問題,為什么不是F12中的
http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule當時,我在面對這個問題時,也是一臉懵逼,進行過很多次猜測,一直沒有得出讓自己比較滿意的理由。
最近我用requests庫重寫了有道翻譯內容的爬蟲,依然不能解決這個問題。
偶然的一次更改,將路徑中的_o去掉,便可以正確的返回結果,即路徑設為
http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule為此,我上網查了很多資料依然沒有結果。。。但是從_o的字面意思來看,讓我想到了鎖。
個人分析:
從返回的結果來看,如果加上_o,就像網站給翻譯結果加了一道鎖,讓我們無法訪問翻譯返回的結果。?
但是,如果去掉_o,就可以正確的返回結果,就像直接繞過了鎖,直接返回翻譯結果。
?對于這個問題,我會持續跟進,如果有什么想法,我會第一時間分享給大家。
再次更新,博文地址:https://blog.csdn.net/qq_40962368/article/details/89097488
?上代碼:
import requests import chardet import jsonif __name__ == '__main__':url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'i = input('請輸入要翻譯的內容:')data = {'i': i,'from': 'AUTO','to': 'AUTO','doctype': 'json','smartresult': 'dict','client': 'fanyideskweb','version': '2.1','keyfrom': 'fanyi.web','action': 'FY_BY_REALTIME','TypoResult': 'false'}headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'' AppleWebKit/537.36 (KHTML, like Gecko)'' Chrome/73.0.3683.86 Safari/537.36'}response = requests.post(url, data=data, headers=headers)html = response.content # 讀取返回的對象code = chardet.detect(html) # 自行判斷編碼格式data = html.decode(code.get('encoding', 'utf-8')) # 解碼json_data = json.loads(data) # 解析載入json數據print('翻譯的結果為:' + json_data['translateResult'][0][0]['tgt'])?運行結果:
?
總結
以上是生活随笔為你收集整理的有道翻译接口问题(续)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab/ansys协同的一个例子
- 下一篇: 工业机器人国内外的发展现状