requests模块 保存cookies和使用cookies。
在会话中保留状态,可以使用request.Session()
# 获取cookie
url = 'http://www.baidu.com'
r = requests.get(url)
r.cookies
# 将CookieJar转为字典:
cookie_dict= requests.utils.dict_from_cookiejar(r.cookies)
# 将字典转为CookieJar:
cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
# 其中cookie_dict是要转换字典
# 转换完之后就可以把它赋给cookies 并传入到session中了:
s = requests.Session()
s.cookies = cookies
第一:保存cookies:
import requests
login_url = 'http://www.chenxm.cc/wp-login.php'
data = {'log': username, 'pwd': password, 'wp-submit': 'Log In', 'testcookie': 1}
session = requests.Session()
response = session.post(login_url, data)
self.cookies = requests.utils.dict_from_cookiejar(response.cookies)
# 注意: requests.cookies 是一个RequestsCookieJar类
<class 'requests.cookies.RequestsCookieJar'>
with open("cookie.txt", "w") as f:
f.write(json.dump(cookies))
第二:读取cookies
import requests
import json
session = requests.Session()
with open("cook.txt", "w") as f:
load_cookies=json.loads(f.read())
session.cookie = requests.utils.cookiejar_from_dict(load_cookies)