python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python请求requests通过session自动管理cookie维持会话状态

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) 

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文