在创建clientsession时指定cookie_jar参数并实现一个持久性cookie存储器。
示例代码:
import aiohttp
class Cookies:
def __init__(self):
self._cookies = {}
async def load_cookies(self, url):
self._cookies = {}
async with aiohttp.ClientSession() as session:
async with session.get(url) as response:
response_cookies = response.cookies
for key, cookie in response_cookies.items():
self._cookies[key] = cookie.value
async def save_cookies(self, url):
async with aiohttp.ClientSession(cookie_jar=aiohttp.CookieJar()) as session:
session.cookie_jar.update_cookies(self._cookies)
async with session.get(url) as response:
pass # do something
cookies = Cookies()
async def login():
async with aiohttp.ClientSession() as session:
async with session.post(login_url, data={"username": "myusername", "password": "mypassword"}) as response:
await cookies.load_cookies(login_url)
async def do_something():
await cookies.save_cookies(something_url)