requests模块
Python 内置了 requests 模块,该模块主要用来发送 HTTP 请求,每次调用 requests 请求之后,会返回一个 response 对象,该对象包含了具体的响应信息。
本文内容如下:
一、使用requests库发送不同类型的请求
二、使用requests库传递URL参数、设置请求头与请求体
三、使用requests库获取响应数据
四、requests库cookie操作
五、requests库session操作
一、使用requests库发送不同类型的请求
requests 方法如下:
delete(url, args) → 发送 DELETE 请求到指定 url
get(url, params, args) → 发送 GET 请求到指定 url
head(url, args) → 发送 HEAD 请求到指定 url
patch(url, data, args) → 发送 PATCH 请求到指定 url
post(url, data, json, args) → 发送 POST 请求到指定 url
put(url, data, args) → 发送 PUT 请求到指定 url
request(method, url, args) → 向指定的 url 发送指定的请求方法
示例:1、发送get请求
# 导包 import requests # 发送请求 response = requests.get("http://www.baidu.com") # 查看响应 response.encoding = "utf-8" print(response.encoding) print(response.text)
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())

浙公网安备 33010602011771号