python aiohttp cookie解析问题
最近在做毕业设计,是关于网络爬虫的,并且是使用python3.6版本async/await式的协程进行网络下载的。其中要爬取的网站需要登录,也是使用cookie保持登录状态的,于是我像使用requests时一样,准备使用session来自动保存登录cookie,以便在后续使用这个session继续爬取数据,然后发现了问题
问题
无论如何,aiohttp.ClientSession就是无法获取到cookie,后续get数据也是提示未登录!于是开始逐步回溯寻找原因
回溯
首先,查看
session.post(login_url, data={'username': 'username', 'password': 'password'})
的返回信息,看看登录是否成功,发现返回的json数据显示登录成功查看1中的response中的headers信息,是否包含应有的Set-Cookie字段。发现的确有,问题不再这里,继续深入……
查看aiohttp.ClientSession源码,发现cookie信息来自于每一次的http response中的cookie叠加,但是我第一次的post请求中返回的cookie就没有成功更新到session.cookie_jar中,而且能够在头部中看到Set-Cookie,说明cookie解析出错
查看源码,发现cookie解析使用了标准库中的类
http.cookies.SimpleCookie