import requests
# 访问 https://httpbin.org/cookies 来查看我们的cookie变化
url = "https://httpbin.org/cookies"
# 创建一个session对象
ss = requests.session()
# 初始 cookie
headers = {
"Cookie": "c=000"
}
check = ss.get(url, headers=headers)
print(check.content.decode("UTF-8"))
'''
方法一
add_dict_to_cookiejar()
1、requests 能添加新的 cookie 字段
2、会重置掉最初的 cookie 字段
'''
c_1 = {"c1": "123"}
# 替换初始 cookie
requests.utils.add_dict_to_cookiejar(ss.cookies, c_1) # 注意:cookiejar(ss.cookies) 为全局的 cookiejar
r_1 = ss.get(url)
print(r_1.content.decode("UTF-8"))
'''
方法二
ss.cookies.update()
1、更新 requests cookie 字段,且不会覆盖 add_dict_to_cookiejar 增加的字段
'''
c_2 = {"c2": "234"}
# 更新cookie
ss.cookies.update(c_2)
r_2 = ss.get(url)
print(r_2.content.decode("UTF-8"))
'''
方法三
self.cookies = cookiejar_from_dict({}) 来自源码
所以使用 cookiejar_from_dict(),将 dict 转换成一个 RequestsCookieJar 并赋值
因为是重新赋值, 所以会重置掉之前全部的 cookie 字段
'''
c_3 = {"c3": "345"}
ss.cookies = requests.utils.cookiejar_from_dict(c_3)
r_2_1 = ss.get(url)
print(r_2_1.content.decode("UTF-8"))
总结:
方法一:add_dict_to_cookiejar,便于在cookie递增字段情况使用。
方法二和方法三:在页面重定向之后如果刷新cookie字段的情况,选择其中一种使用。
以上方法有不足之处,还请留言批评,懒人博主,上线随缘~~~