python请求requests通过session自动管理cookie维持会话状态实践
作者:1024小神
这段描述主要讲解了使用Python的requests库通过session对象管理Cookie的方法,特别适用于需要保持会话状态的网站,如如抖音等,同时介绍了两种主要设置Cookie的方式及其注意事项
有的网站可能需要通过cookie来维持会话状态,来保持登陆状态或者认证状态,比如抖音搜索或者获取直播间信息等查询的时候,可以通过requests.session()来管理cookie。
1.直接通过session对象管理
自动化管理,不用手动修改操作,很方便
import requests
session = requests.session()
print("会话初始cookie:",dict(session.cookies))
get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)
print("响应头中set-cookie:",res.headers.get("set-cookie"))
print("会话现有cookie:",dict(session.cookies)) 输出结果:
会话初始cookie: {}
响应头中set-cookie: sails.sid=s%3ALo1-iQfueg8z1DhR_SX3KxwWA85cYN65.asZ1elFlT9g54uj%2FHkHpaZFkk0rBaCFDtRrA9anWzY4; Path=/; HttpOnly
会话现有cookie: {'sails.sid': 's%3ALo1-iQfueg8z1DhR_SX3KxwWA85cYN65.asZ1elFlT9g54uj%2FHkHpaZFkk0rBaCFDtRrA9anWzY4'}2.通过key设置
直接通过key设置cookie,但不支持设置cookie的 path、domain 等值
import requests
session = requests.session()
print("会话初始cookie:",dict(session.cookies))
# 直接通过key设置cookie,但不支持设置cookie的 path、domain 等值
session.cookies["cka"]="111a"
session.cookies["ckb"]="111b"
get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)
print("本次请求使用的cookie:",res.request.headers.get("Cookie"))
print("会话现有cookie:",dict(session.cookies))
3.通过set 方法设置
通过set方法设置cookie,且支持设置path、domain等值
import requests
session = requests.session()
print("会话初始cookie:",dict(session.cookies))
# 通过set方法设置cookie,且支持设置path、domain等值
session.cookies.set("ck2","222",path="/",domain="postman-echo.com")
get_url = "https://postman-echo.com/get"
res = session.get(url=get_url)
print("本次请求使用的cookie:",res.request.headers.get("Cookie"))
print("会话现有cookie:",session.cookies) 总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
