【python】20行代码实现有道翻译api接口调用
文章目錄
- 1. 目標(biāo)站點(diǎn)
- 2. 完整代碼
- 3. 測(cè)試樣例
- 3.1. 測(cè)試樣例Ⅰ(漢譯英)
- 3.2. 測(cè)試樣例Ⅱ(英譯漢)
- 4. 調(diào)用文檔
- 4.1. 接口地址
- 4.2. 請(qǐng)求方法
- 4.3. 請(qǐng)求參數(shù)
- 4.4. 請(qǐng)求示例
- 4.5. 成功響應(yīng)
- 5. 接口分析
- 6. 相關(guān)推薦
1. 目標(biāo)站點(diǎn)
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']) # 打印翻譯后的結(jié)果main('你好') # 輸出: hello3. 測(cè)試樣例
3.1. 測(cè)試樣例Ⅰ(漢譯英)
樣例輸入:世界
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']) # 打印翻譯后的結(jié)果main('世界')樣例輸出:The world
3.2. 測(cè)試樣例Ⅱ(英譯漢)
樣例輸入: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']) # 打印翻譯后的結(jié)果main('The world')樣例輸出:世界
4. 調(diào)用文檔
4.1. 接口地址
http://fanyi.youdao.com/translate
4.2. 請(qǐng)求方法
post
4.3. 請(qǐng)求參數(shù)
| i | str | 待翻譯的字符串 |
| from | str | 源語言 |
| to | str | 翻譯后的語言 |
| smartresult | str | \ |
| client | str | 客戶端 |
| salt | str | \ |
| doctype | str | 返回文檔類型 |
| version | str | 版本號(hào) |
| keyfrom | str | 鍵來源 |
| action | str | 執(zhí)行翻譯的動(dòng)作 |
4.4. 請(qǐng)求示例
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. 成功響應(yīng)
{"type": "EN2ZH_CN","errorCode": 0,"elapsedTime": 1,"translateResult": [[{"src": "hello","tgt": "你好"}]] }5. 接口分析
1、進(jìn)入有道翻譯頁面,F12打開開發(fā)者調(diào)試工具,選擇Network-XHR:
2、我們馬上就發(fā)現(xiàn)了一個(gè)api接口:
http://fanyi.youdao.com/translate_o3、然后我們看一下它的請(qǐng)求參數(shù):
4、使用python在后端發(fā)送請(qǐng)求:
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、響應(yīng)結(jié)果:
{"errorCode": 50 }6、額……報(bào)錯(cuò)(⊙﹏⊙)。怎么辦呢?/(ㄒoㄒ)/~~……別急接著往下看。
1、在github上又看到了一個(gè)api接口,就是把之前那個(gè)接口的_o去掉:
http://fanyi.youdao.com/translate2、然后就請(qǐng)求成功了:
{"type": "ZH_CN2EN","errorCode": 0,"elapsedTime": 0,"translateResult": [[{"src": "你好","tgt": "hello"}]] }3、請(qǐng)求參數(shù)其實(shí)還可以做一些刪減,sign、lts和bv都不需要,可以刪掉。
4、然后action從FY_BY_REALTlME或FY_BY_CLICKBUTTION中任意選擇一個(gè)都行。
5、很顯然,res['translateResult'][0][0]['tgt']中的字符串就是你好翻譯后結(jié)果。
6、其實(shí)salt參數(shù)也沒啥用,可以不要。
6. 相關(guān)推薦
【python】5行代碼實(shí)現(xiàn)百度翻譯api接口調(diào)用
總結(jié)
以上是生活随笔為你收集整理的【python】20行代码实现有道翻译api接口调用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汪国真的八字命理分析
- 下一篇: 【Python学习笔记—保姆版】第四章—