2024年3月26日 星期二

Python 學習筆記 : Thonny 安裝 Selenium 與 Web Driver 的版本匹配問題

最近想要利用 Selenium 來寫一個爬蟲來擷取市圖網站的借還書與預約狀態, 自動以 Line Notify 通知我最近一周須要跑圖書館的日期. 我在 2018 年時曾測試過 Slenium, 參考 : 



一. 安裝 Selenium 與 Web Driver : 

之前都是直接在 Windows 的 Python 執行環境下安裝 Selenium, 這幾年都改用 Thonny IDE, 所以今天是改在 Thonny 上安裝. 

首先點選 "工具" 選單的 "管理套件" : 




在上方搜尋框輸入 "selenium" 按右邊的搜尋鈕, 找到後按 "安裝" 鈕, 此處因我之前已安裝過, 所以是按 "更新" 鈕升版為 3.18.1 :





二. 安裝 Chrome Web Driver : 

連線 Chrome Web Driver 網站 : 





點選上面最新版的 Web Driver 連結 : 




解壓縮後會得到一個執行檔 chromedriver.exe (約 12MB), 必須將此驅動程式放在 Python 0 安裝位置的 Scripts 子目錄下才能被 Selenium 調用到. 點選 "工具" 選單的 "開啟 Thonny 程式資料夾" :




這會開啟一個檔案總管視窗, 顯示 Thonny 的 Python 執行環境是在 C:\使用者\AppData\Local\Program\Thonny 下 : 




點選 Tonny 底下的 Scripts 子目錄 :




然後將上面的 chromedriver.exe 複製到此資料夾下即可 : 




然後在 Thonny 互動環境下輸入下列程式碼 : 

>>> from selenium import webdriver   
>>> webdriver.__version__   
'4.18.1'

可見 Selenium 似乎已可正常使用. 但真正要開啟 Chrome 時卻出現錯誤 : 

>>> browser=webdriver.Chrome()   

"raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 114
Current browser version is 123.0.6312.59 with binary path C:\Program Files\Google\Chrome\Application\chrome.exe
Stacktrace:"

原來 Selenium 的 Web Driver 版本必須搭配 Chrome 瀏覽器版本, 在下載 Chrome 的 Web Driver 時, 下載連結底下有標明此最新版驅動程式只支援 Chrome 114 版 : 




我查詢自己 Chrome 版本為 123 版, 太新了難怪沒辦法用 : 




但難道 Chrome 要為此降版嗎? 真是傷腦筋. 

但其實我只是想先用 Windows 開發測試爬蟲程式, 最後是要佈署到樹莓派上, 既然 Windows 開發環境卡在版本匹配 (或許用 FireFox 可以), 那就不浪費時間先擱著, 直接到樹莓派上開發吧! 


2024-03-27 補充 :

晚上想說既然 Chrome 要降版很麻煩, 乾脆試試看 FireFox.


三. 安裝 FireFox Web Driver : 

FireFox 的 WebDriver 下載網址如下 :





點選 win32 版的 geckodriver-v0.34.0-win32.zip 下載 (雖然尾的 OS 是 Win 11 64 位元), 解壓後得到驅動程式 geckodriver.exe, 如上面 Chrome 的 Web Driver 一樣, 複製到 Thonny 的 Scripts 目錄下, 測試 OK :

>>> from selenium import webdriver   
>>> browser=webdriver.Firefox()   
>>> browser.get("http://tw.yahoo.com")   




參考 : 


沒有留言 :