requests模块

  Python 内置了 requests 模块,该模块主要用来发送 HTTP 请求,每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。

  本文内容如下:

一、使用requests库发送不同类型的请求

二、使用requests库传递URL参数、设置请求头与请求体

三、使用requests库获取响应数据

四、requests库cookie操作

五、requests库session操作

 


一、使用requests库发送不同类型的请求

  requests 方法如下:

  delete(urlargs)   →  发送 DELETE 请求到指定 url

  get(urlparams, args)  →  发送 GET 请求到指定 url

  head(urlargs)  →  发送 HEAD 请求到指定 url

  patch(urldata, args)  →  发送 PATCH 请求到指定 url

  post(urldata, json, args)  →  发送 POST 请求到指定 url

  put(urldata, args)  →  发送 PUT 请求到指定 url

  request(methodurlargs)  →  向指定的 url 发送指定的请求方法

示例:
  1、发送get请求
# 导包
import requests

# 发送请求
response = requests.get("http://www.baidu.com")

# 查看响应
response.encoding = "utf-8"
print(response.encoding)
print(response.text)
  2、发送post请求
response = requests.post(url, data=None, json=None)
# url: 请求的URL
# data: (可选) 要发送到请求体中的字典、元组、字节或文件对象
# json: (可选) 要发送到请求体中的JSON数据

注意点:

  data:参数接收form表单数据,后台会⾃动附加form表单请求信息头(data数据格式为字典)

  json:参数接收json数据,后台会⾃动附加json表单请求信息头,例如(headers = {"Content-Type":"application/json"})

示例:向某个项目的登录接口发送post请求
# 导包
import requests

# 发送请求
login_url = "...url地址"
login_data = {
    "mobile": "138xxxxxxxx",
    "password": "123456"
}
response = requests.post(url=login_url, json=login_data)

# 查看响应
print(response.json())
# 响应结果为
# {'success': True, 'code': 10000, 'message': '操作成功!', 'data': '09ababc7-c76c-47f2-963d-dbd7225b0268'}

 


二、使用requests库传递URL参数、设置请求头与请求体

  1、传递URL参数

# 直接通过url传递参数
response = requests.get("http://www.baidu.com")
# 通过params传递参数:
login_url = "http://www.baidu.com"
response = requests.get(url=login_url)

  2、设置请求头

  使用方法: headers={"Content-Type":"application/json"}

  3、请求体

  设置requests方法里的data和json

示例:

# 导包
import requests

# 设置请求路径
login_url = "..."
# 设置请求头
login_header = {
    "Content-Type": "application/json"
}
# 设置请求体
login_data = {
    "mobile": "138xxxxxxxx",
    "password": "123456"
}
# 发送请求
response = requests.post(url=login_url, json=login_data, headers=login_header)

# 查看响应
print(response.json())

 


三、使用requests库获取响应数据

  用途:断言

  实现:

response.status_code  →  响应状态码

response.url  →  url地址信息

response.encoding  →  查看响应数据编码格式

response.headers  →  查看头部信息

response.cookies  →  查看cookies信息

response.text  →  文本形式查看响应数据

response.content  →  字节码形式查看响应数据

response.json()  →  json形式查看响应数据

 


四、requests库cookie操作

  1、cookie获取
# 获取验证码
response = requests.get("http://www.baidu.com")
print(response.cookies)
# 响应结果
# <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
BDORZ = response.cookies.get("BDORZ")
print(BDORZ)
# 结果为27315

  2、cookie使用

cookies ={
    "BDORZ": BDORZ
}
response = requests.post(url=login_url, json=login_data, cookies=cookies)

 


五、requests库session操作

  作用:在多个请求之间存储数据并自动添加数据,如cookies

  使用:

    实例化: session = requests.Session()

    发送请求:request.get() ==> session.get()

示例:

# 导包
import requests

# 创建session对象
session = requests.Session()

# 获取验证码
response = session.get("...")

# 设置请求路径
login_url = "..."
# 设置请求体
login_data = {
    "mobile": "138xxxxxxxx",
    "password": "123456"
}

response = session.post(url=login_url, data=login_data)

# 查看响应
print(response.json())

 

posted @ 2022-06-23 15:51  MToy  阅读(203)  评论(0)    收藏  举报