Chromedriver:如何获得登录会话,以便以后在python中绕过登录



我的代码做了一个curl来获取网站的登录会话令牌。

然后我想存储会话的详细信息,这样我就可以使用chromedriver启动网站的仪表板页面,而无需再次登录。

有没有一种方法可以重用ChromeDriver对象中的令牌?

当您说会话令牌时,实际上是指cookie。您可以使用driver.manage()来处理cookie、将其保存在文件中、按名称访问它们或将它们添加到当前ChromeDriver实例中,从而保存当前ChromeDrive会话的cookie。这里解释得很好。

您可以使用请求库来代替curl。

import requests
post_url = 'http://example.com/login'
payload = { 'key' : 'value' }
headers = {}
cookies_before = set(session.cookies.get_dict().items())
response = session.post(post_url, data=payload, headers=headers)
cookies_after = set(session.cookies.get_dict().items())
cookies_set = cookies_after - cookies_before

此时,cookies_set包含keyvalue元组。如果需要,可以使用pickle来序列化数据。

之后,您可以将cookie信息添加到网络驱动程序的浏览上下文中。

from selenium import webdriver
driver = webdriver.Chrome()
driver.get('http://www.example.com/404')
for t in cookies_set:
key, value = t
driver.add_cookie({'name': key, 'value': value})

相关内容

  • 没有找到相关文章

最新更新