自從開發環境轉移到 Mac OS 後,倒是沒有在這環境下測試用 Selenium 去控制瀏覽器,不過我並不想控制 Safari ,因為它不是一個跨平台的瀏覽器。
第一次使用 Selenium 是學習 Web Crawler 的過程中發現,在瀏覽器中可見的物件並不代表一定爬得到(初心者😗),於是我了解到那些自己抓不到的數據是由 JavaScript 所動態產生的,因為我向目標伺服器所發出的 request 只能取得靜態的數據,若要進行進階的動態網頁資料擷取,那麼我就必須學習如何用程式碼去控制瀏覽器。
Install Selenium
1 | $ pip3 install selenium |
Download Chrome Driver
要讓 Selenium 能夠控制 Chrome 瀏覽器,需要對應版本的 ChromeDriver,例如我的 Chrome 為目前的最新版本 76.0.3809.100,那麼我就下載 ver.76 最新的 76.0.3809.68 版本 ChromeDriver,然後把 ChromeDriver 放在適當的路徑下,以便在程式中呼叫。
Test
1 | #!/usr/bin/env python3 |
測試程式若順利執行的話,在檔案目錄下應該會發現多了個執行畫面的截圖 :
getChrome()預設會用 headless 模式啟動 Chrome,若想顯示使用者介面的話可以將 “show” 這個參數設為 True,如此便能看到自動化執行 Chrome 的過程。但實際應用的情況下非必要就別啟動圖形介面了,執行速度會快很多的😎