要使用aiohttp设置cookies,可以按照以下步骤进行:
import aiohttp
session = aiohttp.ClientSession()
session
对象的get()
方法发送GET请求,并获取响应对象:url = 'http://example.com'
response = await session.get(url)
cookies = response.cookies
http.cookies.SimpleCookie
对象,用于设置cookies:import http.cookies
cookie = http.cookies.SimpleCookie()
cookie
对象的load()
方法将获取到的cookies加载进来:for key, value in cookies.items():
cookie.load(str(key) + '=' + str(value))
set_cookies()
方法设置cookies:# 设置cookies的方法
def set_cookies(cookie, response):
for key, morsel in cookie.items():
response.cookies[key] = morsel.value
set_cookies()
方法将cookies设置到响应对象中:set_cookies(cookie, response)
完整代码示例:
import aiohttp
import http.cookies
# 设置cookies的方法
def set_cookies(cookie, response):
for key, morsel in cookie.items():
response.cookies[key] = morsel.value
async def main():
session = aiohttp.ClientSession()
url = 'http://example.com'
response = await session.get(url)
cookies = response.cookies
cookie = http.cookies.SimpleCookie()
for key, value in cookies.items():
cookie.load(str(key) + '=' + str(value))
set_cookies(cookie, response)
await session.close()
asyncio.run(main())
这样,使用set_cookies()
方法后,就能正确设置cookies了。