有沒有一種方法,每次 selenium 嘗試截取 Instagram 帳戶時,它只需要登錄一次?
import requests
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
from time import sleep
from credentials import userName,password
exist = ["duolingo", 'duolingobrasil', 'duolingodeutschland', 'duolingofrance', 'duolingespanol']
DRIVER = 'chromedriver'
driver = webdriver.Chrome(DRIVER)
i = 1
for ss in exist:
chrome_options = Options() #
chrome_options.add_argument('--headless')
chrome_options.add_argument("--window-size=1920x1080")
DRIVER = 'chromedriver'
driver = webdriver.Chrome(DRIVER)
browser = webdriver.Chrome(executable_path=DRIVER)
browser.implicitly_wait(5)
browser.get('https://www.instagram.com/accounts/login/')
sleep(10)
username_input = browser.find_element(By.CSS_SELECTOR,"input[name='username']")
password_input = browser.find_element(By.CSS_SELECTOR,"input[name='password']")
username_input.send_keys("userName")
password_input.send_keys("password")
login_button = browser.find_element(By.XPATH, "//button[@type='submit']")
login_button.click()
browser.close()
driver.get("https://www.instagram.com/" ss "/")
time.sleep(10)
screenshot = driver.save_screenshot('Pictures/duolingo' str(i) '.png')
i = 1
driver.quit()
每次我嘗試截屏時,在進入帳戶個人資料后,輸出總是像這樣出現。

uj5u.com熱心網友回復:
您可以使用組態檔 - Chrome 組態檔來實作此目的。
我無法驗證此代碼,因為我的 instagram 帳戶有一些問題,但此代碼應該可以作業。
您的代碼有一些缺陷,我已對其進行了修改。
from selenium.webdriver.chrome.service import Service
chrome_options = Options()
# path of the chrome's profile parent directory, you can mention your own
chrome_options.add_argument("user-data-dir=C:\\Temp")
# name of the directory
chrome_options.add_argument("--profile-directory=ChromeData")
# chrome_options.add_argument('--headless')
url = "https://www.instagram.com/"
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options = chrome_options)
driver.maximize_window()
driver.implicitly_wait(10)
driver.get(url)
username_input = driver.find_element(By.CSS_SELECTOR, "input[name='username']")
password_input = driver.find_element(By.CSS_SELECTOR, "input[name='password']")
username_input.send_keys("<username>")
password_input.send_keys("<password>")
login_button = driver.find_element(By.XPATH, "//button[@type='submit']")
login_button.click()
sleep(5)
driver.quit()
exist = ["duolingo", 'duolingobrasil', 'duolingodeutschland', 'duolingofrance', 'duolingespanol']
i = 1
for ss in exist:
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)
driver.maximize_window()
driver.implicitly_wait(10)
driver.get(f"https://www.instagram.com/{ss}/")
sleep(2)
screenshot = driver.save_screenshot('./screenshots/duolingo' str(i) '.png')
sleep(2)
driver.quit()
sleep(5)
i = 1
嘗試上面的代碼,如果您遇到任何問題,請添加評論。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/526075.html
標籤:Python硒谷歌浏览器jupyter-笔记本Instagram
下一篇:要匯入WebDriverWait,正確的方法是使用selenium.webdriver.support.wait還是selenium.webdriver.support.ui?
