【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": "u672au77e5u9519u8bef",
  "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. 喊“喂

6. 相关推荐

经验分享 程序员 微信小程序 职场和发展