Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 含硒饼干_Python_Selenium_Selenium Webdriver_Selenium Chromedriver_Selenium Ide - Fatal编程技术网

Python 含硒饼干

Python 含硒饼干,python,selenium,selenium-webdriver,selenium-chromedriver,selenium-ide,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,Selenium Ide,我正在尝试在登录页面上使用selenium进行一些授权 该页面具有验证码,因此无法自动执行登录过程, 是否有办法登录并保存cookie,然后将其导入另一个浏览器实例?为了在抓取时绕过验证码,您必须手动解析验证码并导出获得的cookie。现在,每次打开Selenium WebDriver时,请确保添加导出的cookie。为了安全起见,保存所有cookies 如果你想在你的抓取中增加一层稳定性,你应该导出几个cookie,并让你的脚本在每次登录页面时随机选择其中一个 这些饼干的有效期很长,所以你不需

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

该页面具有验证码,因此无法自动执行登录过程,
是否有办法登录并保存cookie,然后将其导入另一个浏览器实例?

为了在抓取时绕过验证码,您必须手动解析验证码并导出获得的cookie。现在,每次打开Selenium WebDriver时,请确保添加导出的cookie。为了安全起见,保存所有cookies

如果你想在你的抓取中增加一层稳定性,你应该导出几个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)
以后再添加它们:

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借口,我认为你是问这个问题的人哈哈。是的,谢谢分享你的想法,永远欢迎。