zoukankan      html  css  js  c++  java
  • 【python】5行代码实现百度api接口调用


    1. 目标站点

    https://fanyi.baidu.com/

    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. 必要参数

    参数类型描述
    kwstr待翻译的字符串

    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. 相关推荐

    【python】答题卡识别模型api接口调用

  • 相关阅读:
    使用binlog恢复数据
    Xtrabackup增量差量备份
    解压腾讯DB冷备的xb文件
    mysqldump
    xtrabackup备份选项
    MySQL的各种日志
    MySQL的事务相关概念
    LVS(dr)+keepalived
    MeasureSpec学习
    网络通信机制:Socket、TCP/IP、HTTP
  • 原文地址:https://www.cnblogs.com/ghgxj/p/14219058.html
Copyright © 2011-2022 走看看