• 【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接口调用

  • 相关阅读:
    POJ 2236 Wireless Network(并查集)
    POJ 2010 Moo University
    POJ 3614 Sunscreen(贪心,区间单点匹配)
    POJ 2184 Cow Exhibition(背包)
    POJ 1631 Bridging signals(LIS的等价表述)
    POJ 3181 Dollar Dayz(递推,两个long long)
    POJ 3046 Ant Counting(递推,和号优化)
    POJ 3280 Cheapest Palindrome(区间dp)
    POJ 3616 Milking Time(dp)
    POJ 2385 Apple Catching(01背包)
  • 原文地址:https://www.cnblogs.com/ghgxj/p/14219058.html
Copyright © 2020-2023  润新知