成功登录后可以将cookies保存,在下次访问时带上cookie,免去登录过程;
当然,要在cookie的有效期内;
s = requests.Session()
之前都是requests 的Session在帮我们管理cookie;
print(s.cookies)
输出:
<RequestsCookieJar[<Cookie JSESSIONID=48758FD2200CD718BA9E5AE6104ED4E2 for ..../>]>
是一个RequestsCookieJar类型,可以用字典的方式去访问;
print(s.cookies['JSESSIONID'])
当我们判断登陆成功后,将cookie写入本地文件保存;
cokf = open("cookies/cookies", 'w')
cokf.write(s.cookies['JSESSIONID'])
cokf.close()
print("Login Success!")
下次要用时,读取出来,再设置Session对象的cookie值;
s = requests.Session()
cokf = open("cookies/cookies", 'r')
s.cookies.set('JSESSIONID', cokf.read())
cokf.close()
其他操作cookie的方式
DCOOKIES = {
"cookieName": "cookieValue",
"otherName": "otherValue"
}
s = requests.session()
requests.utils.add_dict_to_cookiejar(s.cookies, DCOOKIES)
requests.utils.dict_from_cookiejar(cj) # 返回一个dict
requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True) # 返回cookiejar对象