如何避免每次使用 Selenium 和 Python 时都出现 Instagram 登录页面

Sel*_*man 3 python cookies selenium pickle webdriverwait

我正在尝试制作一个 selenium instagram 脚本。我的问题是我每次都必须登录我的帐户。

\n

如果我使用普通的谷歌浏览器,只需登录一次就足够了。当 \xc4\xb1 打开 Chrome 时,它​​始终保持登录状态。但 Chrome 驱动程序总是要求登录。

\n
from selenium import webdriver\nimport time\nimport random\nfrom selenium.webdriver.common.by import By\nimport kullaniciBilgileri as kb\nimport os.path\nfrom pathlib import Path\nfrom selenium.webdriver.chrome.options import Options\nimport collections\n\noptions = Options()\noptions.add_experimental_option('useAutomationExtension', False)\nlink = "http://www.instagram.org"\nbrowser = webdriver.Chrome(options=options, executable_path="./chromedriver")\nbrowser.get(url=link)\ntime.sleep(10)\nusername = browser.find_element(by=By.NAME, value=("username"))\npassword = browser.find_element(by=By.NAME, value=("password"))\nusername.send_keys(kb.userName)\npassword.send_keys(kb.password)\nloginBtn = browser.find_element(by=By.CSS_SELECTOR, value=("#loginForm > div > div:nth-child(3) > button > div"))\n                               \nloginBtn.click()\n
Run Code Online (Sandbox Code Playgroud)\n

有什么建议吗?

\n

Deb*_*anB 5

在访问Instagram以避免每次登录时,一旦您第一次使用pickle模块登录,您可以存储cookie并在下次登录尝试时重复使用,如下所示:

\n
from selenium.webdriver.support.ui import WebDriverWait\nfrom selenium.webdriver.common.by import By\nfrom selenium.webdriver.support import expected_conditions as EC\nimport pickle\n\ndriver.execute("get", {\'url\': \'http://www.instagram.org\'})\nWebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name=\'username\']"))).send_keys("_SelmanFarukY\xc4\xb1lmaz_")\ndriver.find_element(By.CSS_SELECTOR, "input[name=\'password\']").send_keys("Selman_Faruk_Y\xc4\xb1lmaz")\ndriver.find_element(By.CSS_SELECTOR, "button[type=\'submit\'] div").click()\npickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))\ndriver.quit()\ndriver = webdriver.Chrome(service=s, options=options)\ndriver.execute("get", {\'url\': \'http://www.instagram.org\'})\ncookies = pickle.load(open("cookies.pkl", "rb"))\nfor cookie in cookies:\n    driver.add_cookie(cookie)\ndriver.execute("get", {\'url\': \'http://www.instagram.org\'})\n
Run Code Online (Sandbox Code Playgroud)\n