• Python爬虫基础十一(POST请求百度翻译)


    一、POST请求数据流程

    以百度翻译网页进行分析。使用场景为:用户填入信息,页面对其进行翻译。

    按 F12 打开控制台,依次点击 Network > XHR(此为异步加载的网络数据包),再点击左侧 URL 链接,在右侧的 payload和Preview 栏能够看到对响应内容的预览信息,其中包含用户输入的内容,故此 URL 是我们需要的。

    确定了URL信息,点击 Headers 栏,查看整个请求信息

    整体逻辑是:用户在页面输入文字信息后,程序会生成对应的表单数据(Payload 栏中的 Form Data),用其数据和 Headers 信息(Headers 栏中 Request Headers)向 URL(Headers 栏中 General 里的 Request URL) 发起 POST 请求,服务端响应并返回数据(Preview 栏中信息)。

    实例一:

    #post请求   https://fanyi.baidu.com/sug
    import urllib.request
    import urllib.parse
    url = ' https://fanyi.baidu.com/sug'
    #请求头复制过来
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.67 Safari/537.36'
    }
    #声明需要查什么单词语句
    q = input('请输入要查询的单词:')
    data = {
        'kw':q
    }
    # post请求的参数 必须要进行编码
    data = urllib.parse.urlencode(data).encode('utf-8')
    # post的请求的参数 是不会拼接在url的后面的  而是需要放在请求对象定制的参数中
    # post请求的参数 必须要进行编码
    request = urllib.request.Request(url=url,data=data,headers=headers)
    # 模拟浏览器向服务器发送请求
    response = urllib.request.urlopen(request)
    # 获取响应的数据
    content = response.read().decode('utf-8')
    # 字符串--》json对象
    import json
    obj = json.loads(content)
    print(obj)

  • 相关阅读:
    Lombok 安装、入门
    Centos 6.5中使用yum安装jdk
    Mysql规范和使用注意点(转)
    Java编码规范
    windows2016重新配置sid
    Postman POST接口请求无法获取数据
    微信修改密码
    SQL事务
    .net时间格式化
    SQL查询列是否有重复值
  • 原文地址:https://www.cnblogs.com/Williamls/p/16292716.html
Copyright © 2020-2023  润新知