爬虫使用session进行cookie的维护

在开发中有时可能需要使用selenium进行登录,回去cookie,由于selenium采集效率较差,所以采集的工作需要使用requests进行。

在这种情况下,我们需要维护登录获取到的cookie。

工作中我使用chrmoe进行登录,获取到的cookie为[{‘name’: key1, ‘value’: value1},{‘name’: key2, ‘value’: value2}]形式, 首先需要转换成一个大的cookie字典{key1:value1, key2:value2}。

from selenium import webdriver
browser = webdriver.Chrome()
browser.get('url')
cookie_list = browser.get_cookies()
for cookie in cookie_list:
     cookies[cookie['name']] = cookie['value']

因为只使用requests发送请求不便于cookie的维护,时间长cookie可能会失效,所以使用requests.session()获取session实例进行cookie维护。但是requests只能保持 cookiejar 类型的cookie,而我们手动构建的cookie是dict类型的。所以要把dict转为 cookiejar类型。

cookies = requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)
session = requests.session()
session.cookies = cookies

同时自己为了测试, 用flask写了一个server,用于获取cookie和设置cookie,亲测生效了。现在只需要使用session实例去发送请求就可以维护这个cookie了。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页