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

标签 python selenium cookies pickle webdriverwait

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

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

from selenium import webdriver
import time
import random
from selenium.webdriver.common.by import By
import kullaniciBilgileri as kb
import os.path
from pathlib import Path
from selenium.webdriver.chrome.options import Options
import collections

options = Options()
options.add_experimental_option('useAutomationExtension', False)
link = "http://www.instagram.org"
browser = webdriver.Chrome(options=options, executable_path="./chromedriver")
browser.get(url=link)
time.sleep(10)
username = browser.find_element(by=By.NAME, value=("username"))
password = browser.find_element(by=By.NAME, value=("password"))
username.send_keys(kb.userName)
password.send_keys(kb.password)
loginBtn = browser.find_element(by=By.CSS_SELECTOR, value=("#loginForm > div > div:nth-child(3) > button > div"))
                               
loginBtn.click()

有什么建议吗?

最佳答案

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

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import pickle

driver.execute("get", {'url': 'http://www.instagram.org'})
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name='username']"))).send_keys("_SelmanFarukYılmaz_")
driver.find_element(By.CSS_SELECTOR, "input[name='password']").send_keys("Selman_Faruk_Yılmaz")
driver.find_element(By.CSS_SELECTOR, "button[type='submit'] div").click()
pickle.dump( driver.get_cookies() , open("cookies.pkl","wb"))
driver.quit()
driver = webdriver.Chrome(service=s, options=options)
driver.execute("get", {'url': 'http://www.instagram.org'})
cookies = pickle.load(open("cookies.pkl", "rb"))
for cookie in cookies:
    driver.add_cookie(cookie)
driver.execute("get", {'url': 'http://www.instagram.org'})

关于python - 如何避免每次使用 Selenium 和 Python 时都出现 Instagram 登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73136877/

相关文章:

javascript - jQuery:为两个域设置 cookie

java - 使用selenium java按索引号选择列表值

java-selenium xpath 查找前一个节点

css - 有什么方法可以使用带有 CSS 选择器的文本来定位 Web 元素吗?

javascript - bluebird Promise - 如何从回调中返回 Promise?

使用来自 URL 的变量的 PHP Cookie

python - 用于 Python 的 Github API : PyGithub - get a list of all commits for a particular repository

python - 将数据框与排序标准合并

python - Pandas ExtensionArray 的简单示例

python - Django 测试用例警告 : Converting column 'options' from VARCHAR to TEXT