練習 Python 開發自動註冊
一直以來沒什麼機會寫完整的 Python programming。這次心血來潮想做個自動註冊免費課程的自動化程式,參考以前看過 Python 在這方面的強大工具群,因此打算順便練習寫一次 Python。
其實也不是什麼大不了的技術,就相當多年以來使用類似按鍵精靈這種工具開發自動化處理程式(類Bot)罷了。一開始參考此文章介紹,所以決定採用 pyautogui 套件來實現主要功能。
當然以類似按鍵精靈功能來說,也有像是 (Python) Selenium、SikuliX、SeeShell 等強大的軟體工具/函式庫可以做到。
不囉嗦 Github 專案在此。
簡單介紹開發邏輯的話就是先準備好要辨識的 GUI元件樣本圖案,然後從指定的 URL-list 依序使用 Google Chrome 瀏覽器打開,每打開一個網頁就檢查是否有符合像是”免費”、”立刻註冊”、”前往課程”等 GUI 按鈕元件出現,如果有的話呼叫 pyautogui.Click() 在適當時機觸發滑鼠點擊事件以前往目標的註冊課程網頁。其中使用到 pyautogui.locateOnScreen() 比對 GUI 元件時,因為原本的影像辨識只支援 per-pixel perfect comparison,所以為了支援容許誤差範圍,引入 opencv-python 套件,使該 API 支援導入 confidence(0~1) 參數來表示誤差容許比例。
在自己的電腦上測試過應該基本情境都可以使用,只是因為考量有時候可能遇到網路速度慢的環境,所以每次切換網頁我都預設延遲 10 秒,因此等待時間稍長。這次練習經驗算蠻好玩的。