【问题标题】:Consistent cookies with selenium与硒一致的饼干
【发布时间】:2021-07-10 09:48:46
【问题描述】:

我正在尝试在登录页面上使用 selenium 进行一些授权。

该页面有验证码,因此无法自动化登录过程, 有没有办法登录,保存 cookie,然后将它们导入另一个浏览器实例?

【问题讨论】:

    标签: python selenium selenium-webdriver selenium-chromedriver selenium-ide


    【解决方案1】:

    为了在抓取时绕过验证码,您必须手动解决验证码并导出您获得的 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)
    

    【讨论】:

    • 手动解决验证码一次真的有效吗?如果再次出现怎么办?
    • 解决验证码一次对您没有帮助,您需要多次执行并将其添加到您的 cookie 中才能正常工作,具体取决于网站。
    • 好的,但是我将只能使用一个用户进行测试,使用相同的 cookie。在需要测试多个用户的情况下,它将不起作用。
    • cookie 对于每个浏览器 + 物理机 + 用户配置文件都是唯一的,因此在这种情况下,与多个用户共享 cookie 对您不起作用。现在回到您的问题,您必须找到另一种登录方式,除了使用验证码的普通登录方式。
    • @vitaliis 借口,我以为是你提出这个问题的人哈哈。是的,感谢您分享您的想法,我们始终欢迎您。
    猜你喜欢
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 2016-12-27
    • 1970-01-01
    • 2010-09-15
    相关资源
    最近更新 更多