【python】20行代码实现有道翻译api接口调用

您所在的位置:网站首页 网易有道翻译在线使用 【python】20行代码实现有道翻译api接口调用

【python】20行代码实现有道翻译api接口调用

2024-06-25 17:18| 来源: 网络整理| 查看: 265

文章目录 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 requests def 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('你好') # 输出: hello 3. 测试样例 3.1. 测试样例Ⅰ(汉译英)

样例输入:世界

import requests def 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 requests def 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. 请求参数 参数类型描述istr待翻译的字符串fromstr源语言tostr翻译后的语言smartresultstr\clientstr客户端saltstr\doctypestr返回文档类型versionstr版本号keyfromstr键来源actionstr执行翻译的动作 4.4. 请求示例 import json, requests def 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_o

3、然后我们看一下它的请求参数: 在这里插入图片描述

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/translate

2、然后就请求成功了:

{ "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接口调用



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3