練習 Python 開發自動註冊

River Wang
Oct 25, 2020

一直以來沒什麼機會寫完整的 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 秒,因此等待時間稍長。這次練習經驗算蠻好玩的。

--

--

River Wang

學生時代就跳入 Computer Grpahics 領域,其他技術好像都不想學/學不來,工作也找 Graphics 相關內容,但幾年後第二份工作才真的投入遊戲產業,不過也是個失敗的經驗。目前雖然逃離遊戲慘業,但也沒混出什麼出息,仍然在混口飯吃,並幻想著某天自己終於有時間開始完成自己想做的遊戲作品。