乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      巧用Python : 用PyAutoGUI模塊實(shí)現(xiàn)自動(dòng)化

       F2967527 2022-06-22 發(fā)布于北京

      寫在前頭

      最近學(xué)習(xí)了一下PyAutoGUI模塊,就把做的幾個(gè)例子錄成了視頻教程,Python提供的第三方庫(kù)實(shí)在方便,通過閱讀各個(gè)模塊官網(wǎng)上提供的文檔對(duì)快速掌握這些現(xiàn)成的模塊至關(guān)重要,我所做的例子只是用到了人家的皮毛,要想更深入的理解,還需直接閱讀官方提供的第一手資料,例如本次的PyAutoGUI模塊,可以訪問下面的網(wǎng)址查看文檔:

      https://pyautogui.readthedocs.io/en/latest/

      另外,本課的例子不能直接拿來(lái)運(yùn)行喲!因?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)信息的元組,來(lái)為下一步確定鼠標(biāo)該移動(dòng)到哪里才能讓程序塢出現(xiàn)在屏幕上作準(zhǔn)備。

      print(pyautogui.position())

      控制鼠標(biāo)和鍵盤

      在第二節(jié)課的例子中,我演示了如何將鼠標(biāo)移至指定位置、點(diǎn)擊,并模擬鍵盤輸入的操作,其中涉及pyautogui的方法有:moveTo(), click(), typewrite(要輸入的字符串, 輸入間隔時(shí)長(zhǎng)), press(代表對(duì)應(yīng)鍵字符串),其中可以在官方文檔中搜索KEYBOARD_KEYS來(lái)查看對(duì)應(yīng)鍵字符串的關(guān)鍵字列表。

      1import py
      2import pyautogui, time
      3try:
      4    pyautogui.moveTo(358899)
      5    time.sleep(1)
      6    pyautogui.click(358899)
      7    time.sleep(1)
      8    pyautogui.click(48891)
      9    time.sleep(1)
      10    pyautogui.typewrite('www.bing.com',0.5)
      11    time.sleep(1)
      12    pyautogui.press('enter')
      13except KeyboardInterrupt:
      14    print('\nStop!')

      在屏幕上定位指定圖片

      第二節(jié)課中讓鼠標(biāo)自動(dòng)移動(dòng)到固定位置進(jìn)行操作的方法受限于指定的坐標(biāo),瀏覽器圖標(biāo)或?yàn)g覽器窗口稍有移動(dòng),都會(huì)影響程序正常打開瀏覽器的成功率。因此在第三節(jié)課視頻中我介紹了pyautogui的另一個(gè)方法locateOnScreen(要尋找的圖片路徑字符串),在屏幕上查找這個(gè)圖片,如果沒找到返回None,找到的話,返回一個(gè)Box類型的對(duì)象,其中包含了找到區(qū)域的左上角位置及長(zhǎng)寬數(shù)據(jù)。

      然而,多次運(yùn)行程序后發(fā)現(xiàn)成功率仍然不高,我的推測(cè)是由于圖片存儲(chǔ)時(shí)有減損,圖像透明度,或者圖像大小的變化導(dǎo)致無(wú)法正常定位。在pyautogui的官網(wǎng)例子中,介紹了locateOnScreen的另一個(gè)參數(shù)confidence:

      圖片

      添加上這個(gè)參數(shù)后,能夠大大提高程序運(yùn)行的成功率,改進(jìn)后的程序中,我把參數(shù)的值設(shè)為了0.5,結(jié)果成功率明顯提高。

      FAIL-SAFE

      在使用pyautogui編程過程中,如果在一個(gè)無(wú)限循環(huán)中鼠標(biāo)不停處于被移動(dòng)的狀態(tài),會(huì)有一種電腦失控的可怕效果,除了硬關(guān)機(jī),還有什么方法呢,pyautogui提供了一個(gè)FAILSAFE來(lái)讓你脫困,在官網(wǎng)文檔中對(duì)它的解釋如下:

      圖片

      只要在受困時(shí),使用洪荒之力移動(dòng)你的鼠標(biāo)將它瞬間移到屏幕的任意四角之一,就能彈出FailSafeException這個(gè)異常。另外,看到最后加黑大寫的那句了嗎?一般默認(rèn)FAILSAFE已經(jīng)是True的值了,雖然你可以在代碼里設(shè)成False,但是人家還是高度建議咱別這么干!

      完整代碼

       1import py
      2import pyautogui, time
      3try:
      4    iconloc = pyautogui.locateOnScreen('icon.png',confidence=0.5)
      5    pyautogui.moveTo(358899)
      6    #time.sleep(1)
      7    while iconloc == None:
      8        iconloc = pyautogui.locateOnScreen('icon.png',confidence=0.5)
      9        print(f'iconloc:{iconloc}')
      10
      11    pyautogui.click(iconloc)
      12    time.sleep(1)
      13    browserloc = pyautogui.locateOnScreen('browser.png')
      14    while browserloc == None:
      15        browserloc = pyautogui.locateOnScreen('browser.png')
      16        print(f'browserloc:{browserloc}')
      17    pyautogui.click(browserloc)
      18    time.sleep(1)
      19    pyautogui.typewrite('www.bing.com',0.5)
      20    time.sleep(1)
      21    pyautogui.press('enter')
      22except KeyboardInterrupt:
      23    print('\nStop!')
      圖片

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多