使用 Selenium Python 登入網站

Fariba Laiq 2023年10月10日
使用 Selenium Python 登入網站

有時我們可能希望在瀏覽器中自動執行任務,例如登入網站。在我們想要從需要登入的網站上抓取資料的情況下,它會很有幫助。

Python 提供了許多用於 Web 自動化的包,例如 Selenium。

使用 Selenium Python 登入網站

Selenium 是一個強大的 Web 瀏覽器自動化和測試工具。我們編寫指令碼來控制 Web 瀏覽器並執行特定操作。

安裝 Selenium 和 Chrome Webdriver

要安裝 Selenium,我們使用以下命令。

#Python 3.x
pip install selenium

ChromeDriver 是 Selenium WebDriver 用來與 Chrome 互動的另一個可執行檔案。如果我們想在 Chrome 網路瀏覽器上自動執行任務,我們還需要安裝 ChromeDriver。

根據 Chrome 瀏覽器的版本,我們需要為其選擇相容的驅動程式。以下是安裝和配置 Chrome 驅動程式的步驟:

  1. 點選這個連結。根據你的 Chrome 瀏覽器版本和作業系統型別下載 Chrome 驅動程式。
  2. 如果要查詢 Chrome 瀏覽器的版本,點選 Chrome 右上角的三個點,點選幫助,選擇關於谷歌瀏覽器。你可以在關於部分檢視 Chrome 版本。
  3. 解壓 zip 檔案並執行 Chrome 驅動程式。

使用 Selenium Python 自動登入網站的程式碼

我們在以下程式碼中建立了 WebDriver 例項,並指定了 Chrome 驅動程式的路徑。然後我們將目標網站的 URL 指定給驅動程式例項。它將在所需的瀏覽器中開啟目標網站。

我們在變數中儲存了虛擬電子郵件和密碼,稍後將用於登入。要自動輸入電子郵件和密碼並單擊登入按鈕,我們必須找到這些變數的名稱/id(可用)網頁元素。

我們必須在瀏覽器中開啟所需的網站,右鍵單擊元素,然後單擊檢查元素。在這裡,我們可以看到 HTML 程式碼,包括元素的名稱。

我們將複製元素的名稱並將其作為引數傳遞給帶有驅動程式例項的 find_element_by_name() 方法。我們將對剩餘的兩個元素重複該過程。

此方法將返回 Web 元素,我們將其儲存在變數中。我們將使用 sendkeys() 方法自動在其相關欄位中輸入電子郵件和密碼。

我們在填寫欄位後設定了一個兩秒的計時器,以便使用者可以通過該過程的延遲來觀察正在發生的事情。最後,登入按鈕將通過 click() 方法自動單擊。

示例程式碼:

# Python 3.x
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome(r"E:\download\chromedriver.exe")
driver.maximize_window()
driver.get("https://discpersonalitytesting.com/login-here/")
email = "myemail@email.com"
password = "mypassword1@23"
email_textfield = driver.find_element_by_name("email")
password_textfield = driver.find_element_by_name("password")
login_button = driver.find_element_by_name("LoginDAPLoginForm")
email_textfield.send_keys(email)
time.sleep(2)
password_textfield.send_keys(password)
time.sleep(5)
login_button.click()

輸出:

Selenium 登入

作者: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

相關文章 - Python Selenium