selenium 函式庫 ( 模組 ) 是使用 Python 進行網路爬蟲時,必備的函式庫之一,透過 selenium 可以模擬出使用者在瀏覽器的所有操作行為 ( 點擊按鈕、輸入帳號密碼、捲動捲軸...等 ),因此除了爬蟲的應用,也常作為「自動化測試」使用的工具,在網站開發完成後,透過自動化的腳本測試所有功能是否正常。
$pip install selenium
WebDriver 是用來執行並操作瀏覽器的 API 介面,每一個瀏覽器都會有各自對應的驅動程式 ( driver ),Selenium 會透過 WebDriver 來直接對瀏覽器進行操作,將所支援的瀏覽器進行自動化作業,就如同真的使用者在操作。
不同的瀏覽器會對應不同的 driver,有幾種常見的 driver (我使用的是 Chrome ):
下載 Chrome driver 時請,須下載對應的 Chrome 的版本,之後如果有更新, driver 也必須更新 ( 版本查詢 : 點擊右上角選單「說明 > 關於 Google Chrome」)
最新的版本(下載)
如果成功打開代表你的設定都是對的!
from selenium import webdriver # 從 Selenium 庫中導入 webdriver 模塊
# 創建一個新的 Chrome 瀏覽器實例。WebDriver 將使用 ChromeDriver 來控制 Chrome 瀏覽器。
# 如果你的系統已經正確設置了 ChromeDriver 的路徑,那麼可以不傳遞任何參數
driver = webdriver.Chrome()
# 使用 get 方法打開指定的 URL。在這裡,我們打開 Google 的首頁。
driver.get('https://www.google.com')
# 關閉瀏覽器視窗。如果只有一個視窗,則會關閉整個瀏覽器實例。
driver.close()
在較新的 Selenium 版本中,不再直接將 ChromeDriver 的路徑作為字串傳遞給 webdriver.Chrome() 的建構函數。應該使用 Service 和 Options 類來配置 WebDriver。
driver = webdriver.Chrome('C:/Users/Desktop/chromedriver/chromedriver.exe')
# 從 selenium 模塊中導入必要的類
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
# 創建一個 Service 物件,指定 chromedriver 的路徑
# Service 類允許你指定 ChromeDriver 的位置,這樣 Selenium 就知道從哪裡啟動 ChromeDriver。
service = Service('C:/Users/micke/Desktop/chromedriver/chromedriver.exe')
# 使用 Service 物件創建一個 ChromeDriver 實例
# webdriver.Chrome() 用於啟動 Chrome 瀏覽器。通過指定 service 參數,我們告訴 WebDriver 使用我們創建的 Service 物件。
driver = webdriver.Chrome(service=service)
# 打開指定的網站
# driver.get() 用於導航到指定的 URL,這裡是 Google 的網站,並且使用繁體中文界面。
driver.get('https://www.google.com.tw/?hl=zh_TW')
參考資料
https://steam.oxxostudio.tw/category/python/spider/selenium.html#a4