使用 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 驅動程式的步驟:
- 點選這個連結。根據你的 Chrome 瀏覽器版本和作業系統型別下載 Chrome 驅動程式。
- 如果要查詢 Chrome 瀏覽器的版本,點選 Chrome 右上角的三個點,點選幫助,選擇關於谷歌瀏覽器。你可以在
關於
部分檢視 Chrome 版本。 - 解壓 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()
輸出:
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