• Python爬虫进阶——Request对象之post请求案例分析【百度翻译】



    作为进阶的最后一篇,我们就讲个有意思点的案例吧——百度翻译。

    一、分析URL接口

    正如上一篇:《Python爬虫进阶——Get请求》讲到的:当我们进行爬虫开发的时候,首先要做的,就是分析URL接口。

    1. 打开百度翻译;

    2. F12;

    3. 开发者工具中点击“暂停”和“清空”;
      在这里插入图片描述

    4. 输入“python”,并选中如图的“sug”请求;
      在这里插入图片描述

    5. 点击“Headers”,可以查看到图中圆圈中的信息;
      在这里插入图片描述

    二、代码实现

    baidu_fanyi.py
    import urllib.request as ur
    import urllib.parse as up
    
    # 实例化data
    data = {
        'kw': 'python'
    }
    # data编码
    data_url = up.urlencode(data)
    
    request = ur.Request(
        url='https://fanyi.baidu.com/sug',
        # 不仅仅url编码,还需encode转成字节
        data=data_url.encode('utf-8'),
    )
    
    response = ur.urlopen(request).read()
    print(response)
    
    输出如下:

    在这里插入图片描述
    注意:
    输出结果为字节类型,为json对象,还需使用loads方法。

    三、代码抽离和完善

    import urllib.request as ur
    import urllib.parse as up
    import json
    
    word = input('请输入要翻译的英文:')
    # 实例化data
    data = {
        'kw': word
    }
    # data编码
    data_url = up.urlencode(data)
    
    request = ur.Request(
        url='https://fanyi.baidu.com/sug',
        # 不仅仅url编码,还需encode转成字节
        data=data_url.encode('utf-8'),
    )
    
    response = ur.urlopen(request).read()
    # print(response)
    
    ret = json.loads(response)
    # print(ret)
    translate = ret['data'][0]['v']
    print(translate)
    
    输出如下:

    在这里插入图片描述
    OK啦~~
    简直完美。
    天色已晚,明天再写《Python爬虫实战篇》吧。



    为我心爱的女孩~~


  • 相关阅读:
    手机键盘
    关于大数除法
    整数转字符串,字符串转整数
    动态规划习题:数字三角形(01背包)
    关于最长不重复子串的问题
    Ubuntu12.04 下vim的使用(不断更新)
    Ubuntu12.04 如何设置环境变量
    LeetCode--Reverse Linked List II
    Ubuntu12.04 使用svn如何设置代理
    July面试整理系列--(5)
  • 原文地址:https://www.cnblogs.com/WoLykos/p/12095204.html
Copyright © 2020-2023  润新知