【python】20行代码实现有道翻译api接口调用
生活随笔
收集整理的這篇文章主要介紹了
【python】20行代码实现有道翻译api接口调用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 目標站點
- 2. 完整代碼
- 3. 測試樣例
- 3.1. 測試樣例Ⅰ(漢譯英)
- 3.2. 測試樣例Ⅱ(英譯漢)
- 4. 調用文檔
- 4.1. 接口地址
- 4.2. 請求方法
- 4.3. 請求參數
- 4.4. 請求示例
- 4.5. 成功響應
- 5. 接口分析
- 6. 相關推薦
1. 目標站點
http://fanyi.youdao.com/
2. 完整代碼
import requestsdef main(query):url = 'http://fanyi.youdao.com/translate'data = {"i": query, # 待翻譯的字符串"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": "16081210430989","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_CLICKBUTTION"}res = requests.post(url, data=data).json()print(res['translateResult'][0][0]['tgt']) # 打印翻譯后的結果main('你好') # 輸出: hello3. 測試樣例
3.1. 測試樣例Ⅰ(漢譯英)
樣例輸入:世界
import requestsdef main(query):url = 'http://fanyi.youdao.com/translate'data = {"i": query, # 待翻譯的字符串"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": "16081210430989","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_CLICKBUTTION"}res = requests.post(url, data=data).json()print(res['translateResult'][0][0]['tgt']) # 打印翻譯后的結果main('世界')樣例輸出:The world
3.2. 測試樣例Ⅱ(英譯漢)
樣例輸入:The world
import requestsdef main(query):url = 'http://fanyi.youdao.com/translate'data = {"i": query, # 待翻譯的字符串"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": "16081210430989","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_CLICKBUTTION"}res = requests.post(url, data=data).json()print(res['translateResult'][0][0]['tgt']) # 打印翻譯后的結果main('The world')樣例輸出:世界
4. 調用文檔
4.1. 接口地址
http://fanyi.youdao.com/translate
4.2. 請求方法
post
4.3. 請求參數
| i | str | 待翻譯的字符串 |
| from | str | 源語言 |
| to | str | 翻譯后的語言 |
| smartresult | str | \ |
| client | str | 客戶端 |
| salt | str | \ |
| doctype | str | 返回文檔類型 |
| version | str | 版本號 |
| keyfrom | str | 鍵來源 |
| action | str | 執行翻譯的動作 |
4.4. 請求示例
import json, requestsdef main(query):url = 'http://fanyi.youdao.com/translate'data = {"i": query, # 待翻譯的字符串"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": "16081210430989","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_CLICKBUTTION"}res = requests.post(url, data=data).json()print(json.dumps(res, indent=2, ensure_ascii=False))main('hello')4.5. 成功響應
{"type": "EN2ZH_CN","errorCode": 0,"elapsedTime": 1,"translateResult": [[{"src": "hello","tgt": "你好"}]] }5. 接口分析
1、進入有道翻譯頁面,F12打開開發者調試工具,選擇Network-XHR:
2、我們馬上就發現了一個api接口:
http://fanyi.youdao.com/translate_o3、然后我們看一下它的請求參數:
4、使用python在后端發送請求:
import requests import json url = 'http://fanyi.youdao.com/translate_o' data = {"i": "你好", # 待翻譯的字符串"from": "AUTO","to": "AUTO","smartresult": "dict","client": "fanyideskweb","salt": "16081239145423","sign": "d567c9205219fd9d3aa9c677d1535212","lts": "1608123914542","bv": "495f346d16cfce476d93dc879b9e4485","doctype": "json","version": "2.1","keyfrom": "fanyi.web","action": "FY_BY_REALTlME" } res = requests.post(url, data=data).json() print(json.dumps(res, indent=2, ensure_ascii=False))5、響應結果:
{"errorCode": 50 }6、額……報錯(⊙﹏⊙)。怎么辦呢?/(ㄒoㄒ)/~~……別急接著往下看。
1、在github上又看到了一個api接口,就是把之前那個接口的_o去掉:
http://fanyi.youdao.com/translate2、然后就請求成功了:
{"type": "ZH_CN2EN","errorCode": 0,"elapsedTime": 0,"translateResult": [[{"src": "你好","tgt": "hello"}]] }3、請求參數其實還可以做一些刪減,sign、lts和bv都不需要,可以刪掉。
4、然后action從FY_BY_REALTlME或FY_BY_CLICKBUTTION中任意選擇一個都行。
5、很顯然,res['translateResult'][0][0]['tgt']中的字符串就是你好翻譯后結果。
6、其實salt參數也沒啥用,可以不要。
6. 相關推薦
【python】5行代碼實現百度翻譯api接口調用
總結
以上是生活随笔為你收集整理的【python】20行代码实现有道翻译api接口调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汪国真的八字命理分析
- 下一篇: 【微机原理与接口技术】实验5 可编程并行