我正在尝试在登录页面上使用 selenium 进行一些授权。
页面有验证码,因此无法自动化登录过程, 有没有办法登录并保存cookies,然后将它们导入另一个浏览器实例?
答案 0 :(得分:0)
为了在抓取时绕过验证码,您必须手动解决验证码并导出您获得的 cookie。现在,每次打开 Selenium WebDriver 时,请确保添加导出的 cookie。保存所有 cookie 以确保安全。
如果您想在抓取中增加一层稳定性,您应该导出多个 cookie,并让您的脚本在每次登录页面时随机选择其中一个。
这些 cookie 的有效期很长,因此您无需每天都获取新的 cookie。
有关在 Python 和 Selenium 中保存和加载 cookie 的帮助,您可以使用以下代码:
您可以使用 pickle 将当前 cookie 保存为 Python 对象。例如:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))
然后将它们添加回来:
import pickle
import selenium.webdriver
driver = selenium.webdriver.Firefox()
driver.get("http://www.google.com")
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
driver.add_cookie(cookie)