【python】5行代码实现百度api接口调用
文章目录
1. 目标站点
2. 完整代码
import requests
url = 'https://fanyi.baidu.com/sug'
data = {'kw': 'hello'} # 你只需要改kw对应的值
res = requests.post(url, data=data).json()
print(res['data'][0]['v'])
3. 测试样例
3.1. 测试样例Ⅰ(汉译英)
样例输入:data = {'kw': '你好'}
import requests
url = 'https://fanyi.baidu.com/sug'
data = {'kw': '你好'}
res = requests.post(url, data=data).json()
print(res['data'][0]['v'])
样例输出:hello; hi; How do you do!
3.2. 测试样例Ⅱ(英译汉)
样例输入:data = {'kw': 'hello'}
import requests
url = 'https://fanyi.baidu.com/sug'
data = {'kw': 'hello'}
res = requests.post(url, data=data).json()
print(res['data'][0]['v'])
样例输出:int. 打招呼; 哈喽,喂; 你好,您好; 表示问候 n. “喂”的招呼声或问候声 vi. 喊“喂
4. 调用文档
4.1. 接口地址
https://fanyi.baidu.com/sug
4.2. 请求方法
post
4.3. 必要参数
参数 | 类型 | 描述 |
---|---|---|
kw | str | 待翻译的字符串 |
4.4. 请求示例
import json, requests
url = 'https://fanyi.baidu.com/sug'
data = {'kw': 'hello'}
res = requests.post(url, data=data).json()
print(json.dumps(res, indent=2, ensure_ascii=False))
4.5. 成功响应
{
"errno": 0,
"data": [
{
"k": "hello",
"v": "int. 打招呼; 哈喽,喂; 你好,您好; 表示问候 n. “喂”的招呼声或问候声 vi. 喊“喂"
},
{
"k": "hellos",
"v": "n. 喂( hello的名词复数 )"
},
{
"k": "hellow",
"v": "(通常的招呼语)嗨, (打电话用)喂!, (英)(表示惊讶)哎哟"
},
{
"k": "hello girl",
"v": "女话务员; 女电话接线员"
},
{
"k": "hello kitty",
"v": "n. 卡通世界中; 有这样一只小猫; 没有嘴巴; 脸蛋圆圆的"
}
]
}
5. 接口分析
1、进入百度翻译页面,F12
打开开发者调试工具,选择Network-XHR
:
2、我们马上就发现了一个api
接口:
https://fanyi.baidu.com/v2transapi
3、然后我们看一下它的请求参数:
from: en
to: zh
query: hello
transtype: realtime
simple_means_flag: 3
sign: 54706.276099
token: f3742648b89565dc59d86603c03aaae8
domain: common
4、使用python
在后端发送请求:
import json, requests
url = 'https://fanyi.baidu.com/v2transapi'
data = {
'from': 'en',
'to': 'zh',
'query': 'hello',
'simple_means_flag': '3',
'sign': '54706.276099',
'token': 'f3742648b89565dc59d86603c03aaae8',
'domain': 'common'
}
res = requests.post(url, data=data).json()
print(json.dumps(res, indent=2))
5、响应结果:
{
"errno": 997,
"errmsg": "\u672a\u77e5\u9519\u8bef",
"query": "hello",
"from": "en",
"to": "zh",
"error": 997
}
6、额……报错(⊙﹏⊙)。sign
是签名,token
是令牌,这都是百度官方内部定义的,我们很难知道如何解析,这个接口看来不能用了。
1、这里又看到了一个api
接口:
https://fanyi.baidu.com/sug
2、这个是根据输入实时翻译的接口,所以我们只需要看最后一个sug
请求:
3、sug
接口的请求参数是:
kw: hello
4、sug
接口的响应结果是:
5、很显然,res['data'][0]['v']
中的字符串就是hello
翻译后的数据:
int. 打招呼; 哈喽,喂; 你好,您好; 表示问候 n. “喂”的招呼声或问候声 vi. 喊“喂
6、用python
在后端发送请求,请求成功o( ̄▽ ̄)ブ:
import requests
url = 'https://fanyi.baidu.com/sug'
data = {'kw': 'hello'} # 你只需要改kw对应的值
res = requests.post(url, data=data).json()
print(res['data'][0]['v'])
# 输出: int. 打招呼; 哈喽,喂; 你好,您好; 表示问候 n. “喂”的招呼声或问候声 vi. 喊“喂