文章目录

  • 一、安装
  • 二、请求方式get和post
  • 1、get和post不同
  • 二、GET请求
  • 1、带参数的get请求
  • 三、post请求
  • 四、结果处理
  • 五、操作步骤

  • 一、安装

    安装:pip install requests


    二、请求方式get和post

    在Web开发中,POST和GET是两种常见的HTTP请求方法,它们在发送数据和请求资源时扮演着关键角色。虽然它们的基本目的相同,即向服务器请求数据,但在使用方式、安全性、数据大小和速度方面存在显著差异

    1、get和post不同

    1.数据传输方式和位置
    GET请求 通过URL传输数据,数据附加在URL的末尾,可见且有长度限制。

    POST请求 将数据放置在HTTP请求的正文中,对数据大小没有限制,且用户看不到传输的数据。

    2.安全性和私密性
    GET请求由于数据直接暴露在URL中,安全性相对较低,不适合传输敏感信息。

    POST请求在传输敏感数据时更安全,因为数据不会显示在URL中。

    3.数据大小限制
    GET请求受URL长度的限制,适合小量数据的传输。

    POST请求可以传输大量数据,适用于表单提交等场景。

    4.缓存和历史记录
    GET请求可以被缓存,也会保存在浏览器历史记录中。

    POST请求不会被缓存,且不会留下历史记录。

    5.使用场景和效率
    GET请求通常用于请求数据和执行查询,速度较快,适用于数据量小且安全要求不高的场景。

    POST请求常用于更新服务器上的数据,如用户注册和文件上传,适用于需要高安全性和处理大量数据的场景。


    二、GET请求

    1、带参数的get请求

  • 一种是直接拼凑URL,直接发送最终的URL,不需要传参逻辑
  • 另一种是使用params传参逻辑,用最正统的get请求方式
    1、格式
    response = requests.get(url, headers=headers)
    代码如下(示例):
  • import requests
    
    # 设置请求的url
    url = "https://www.baidu.com/s?wd=python"
    
    # 设置请求头,请求头是一个字典
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"
        }
    
    # 用get方式发送请求,带入url和头部信息
    response = requests.get(url, headers=headers)
    
    # 查看最终请求的url(返回的是经过所有重定向后的最终url)
    print(response.url)
    
    # 查看返回的请求网站的编码
    print(response.encoding)
    
    # 设置编码为"UTF-8"接收文档
    response.encoding = 'UTF-8'
    
    # 打印文档返回的文本
    print(response.text)
    

    2、格式

    response = requests.get(url, headers=headers, params=params)

    import requests
    
    # s最后有没有问号结果都一样
    url = 'https://www.baidu.com/s?'
    
    # 请求头是一个字典
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
    }
    # 请求参数是一个字典
    params = {
        'wd': 'python'
        }
    # 带上请求参数发起请求,获取响应
    response = requests.get(url, headers=headers, params=params)
    data = response.content.decode()
    print(response.url)
    

    三、post请求

    1、格式
    response = requests.post(“http://www.baidu.com/”, data = data, headers=headers)

    import requests
    
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
    
    url = 'https://www.baidu.com/s?'
    
    data = {
        'wd': 'python'
    }
    
    res = requests.post(url, headers=headers, data=data)
    print(res)
    print(res.status_code)
    

    四、结果处理

    
    # 1.导入requests库
    #处理返回结果
    import json
    import requests
     
    # 2.明确请求地址
    url = 'https://www.baidu.com/s?'
    # 3.明确请求参数
    # 是一个字典类型数据
    data = {
        'wd': 'python'
    }
    # 4.发送请求
    response = requests.get(url=url, params=data)
    # print(response.json())
     
    # 将python对象转换为json字符串(格式化放回数据)指定编码
    result = json.dumps(response.json(), indent=2, ensure_ascii=False)
    # print(type(result))  # 字符串类型
    

    五、操作步骤

    1.导入requests库
    2.明确请求地址
    3.明确请求参数
    data = {key:value} 字典格式
    4.发送请求获取返回数据

    作者:罗网_net

    物联沃分享整理
    物联沃-IOTWORD物联网 » python——request

    发表回复