寫在前頭 最近學(xué)習(xí)了一下PyAutoGUI模塊,就把做的幾個例子錄成了視頻教程,Python提供的第三方庫實在方便,通過閱讀各個模塊官網(wǎng)上提供的文檔對快速掌握這些現(xiàn)成的模塊至關(guān)重要,我所做的例子只是用到了人家的皮毛,要想更深入的理解,還需直接閱讀官方提供的第一手資料,例如本次的PyAutoGUI模塊,可以訪問下面的網(wǎng)址查看文檔:
另外,本課的例子不能直接拿來運(yùn)行喲!因為這些坐標(biāo)位置是按照我的電腦上圖標(biāo)位置進(jìn)行設(shè)定的,若遷移到別的環(huán)境,可能需要做出適當(dāng)?shù)恼{(diào)整。 PyAutoGUI模塊的安裝 嘗試課程所涉及例子之前,需要用pip命令安裝所需要的PyAutoGUI模塊: pip install pyautogui 獲得鼠標(biāo)當(dāng)前的位置坐標(biāo) 在第一節(jié)課的例子中,我利用pyautogui的position方法得到了坐標(biāo)信息的元組,來為下一步確定鼠標(biāo)該移動到哪里才能讓程序塢出現(xiàn)在屏幕上作準(zhǔn)備。
控制鼠標(biāo)和鍵盤 在第二節(jié)課的例子中,我演示了如何將鼠標(biāo)移至指定位置、點擊,并模擬鍵盤輸入的操作,其中涉及pyautogui的方法有:moveTo(), click(), typewrite(要輸入的字符串, 輸入間隔時長), press(代表對應(yīng)鍵字符串),其中可以在官方文檔中搜索KEYBOARD_KEYS來查看對應(yīng)鍵字符串的關(guān)鍵字列表。 1import py 在屏幕上定位指定圖片 第二節(jié)課中讓鼠標(biāo)自動移動到固定位置進(jìn)行操作的方法受限于指定的坐標(biāo),若瀏覽器圖標(biāo)或瀏覽器窗口稍有移動,都會影響程序正常打開瀏覽器的成功率。因此在第三節(jié)課視頻中我介紹了pyautogui的另一個方法locateOnScreen(要尋找的圖片路徑字符串),在屏幕上查找這個圖片,如果沒找到返回None,找到的話,返回一個Box類型的對象,其中包含了找到區(qū)域的左上角位置及長寬數(shù)據(jù)。 然而,多次運(yùn)行程序后發(fā)現(xiàn)成功率仍然不高,我的推測是由于圖片存儲時有減損,圖像透明度,或者圖像大小的變化導(dǎo)致無法正常定位。在pyautogui的官網(wǎng)例子中,介紹了locateOnScreen的另一個參數(shù)confidence: 添加上這個參數(shù)后,能夠大大提高程序運(yùn)行的成功率,改進(jìn)后的程序中,我把參數(shù)的值設(shè)為了0.5,結(jié)果成功率明顯提高。 FAIL-SAFE 在使用pyautogui編程過程中,如果在一個無限循環(huán)中鼠標(biāo)不停處于被移動的狀態(tài),會有一種電腦失控的可怕效果,除了硬關(guān)機(jī),還有什么方法呢,pyautogui提供了一個FAILSAFE來讓你脫困,在官網(wǎng)文檔中對它的解釋如下: 只要在受困時,使用洪荒之力移動你的鼠標(biāo)將它瞬間移到屏幕的任意四角之一,就能彈出FailSafeException這個異常。另外,看到最后加黑大寫的那句了嗎?一般默認(rèn)FAILSAFE已經(jīng)是True的值了,雖然你可以在代碼里設(shè)成False,但是人家還是高度建議咱別這么干! 完整代碼
![]() |
|