前言
思路
實現
總結
前言在上篇文章《Python自動操作 GUI 神器——PyAutoGUI》中,我跟大家講解了一下 pyautogui
的一些基礎知識和操作,大家反饋很好,給了我好多贊,在此先跟大家說聲三克油!
在得到大家正反饋的同時,我受到了很大鼓舞,感覺如果只是介紹一下基礎操作,有點不過瘾,所以今天晚上加班回來,雖然很不想打開電腦,但是還是忍著疲憊給大家奉獻一個小實例。
為此,我跑去洗手間用涼水洗了一把臉,頓時清醒多了,下面進入正題。
作為一個 GUI 操作的神器,我們看到了它的操作都很簡單,非常通俗易懂,基本上看到函數就能知道它的功效。
下面我來給大家演示一個小栗子,看了這個栗子後你就會明白它的神器由來了。
好了,不給大家繞彎子了,今天的小栗子就是批量給知乎的文章點贊。
思路我們先來看看知乎的個人主頁:
這裡,我將下面的 tab 標簽切換到文章這裡,顯示的就是作者的文章列表。
我們先來想一下,如果我要給這位作者的文章點贊,我需要怎麼做?
首先,我需要找到點贊的圖標;然後,我點擊點贊圖標,完成一次點贊;當我將視野內的文章點贊完成後,我拖動頁面往下滑,繼續上面的步驟。
看到這裡,你是不是覺得這麼說有點二?
但是我們寫程序就必須這樣,把每一個步驟都明確,然後根據步驟去寫邏輯,不然當你動手寫邏輯的時候,你可能會遺漏一些細節,導致程序無法達到預期效果,或者出現bug。
實現有了上面的步驟,我們就可以著手開發代碼了。
首先,我要讓程序識別點贊的按鈕。上篇文章中我介紹過一個小栗子,就是從桌面上找到浏覽器的圖標,我們需要將浏覽器的圖標截圖保存為一張圖片,然後傳給程序,讓程序用這張圖片到屏幕中去尋找。
這裡也是一樣,我先將知乎的點贊按鈕截了圖:
按照上面的步驟,我首先需要識別當前桌面上的點贊按鈕,只需要一行代碼:
allLocation = pyautogui.locateAllOnScreen('agree.png')
這樣就可以找到桌面上所有的點贊按鈕了。
找到點贊按鈕之後,下一步就是點贊了:
def like(): time.sleep(1) if pyautogui.locateOnScreen('agree.png'): left, top, width, height = pyautogui.locateOnScreen('agree.png') center = pyautogui.center((left, top, width, height)) pyautogui.click(center) print('點贊成功!')
這裡,我首先休息了1秒鐘,防止程序運行過快,把頁面搞崩潰或者觸發平台的安全策略。
接著我找到點贊的按鈕,計算按鈕的中心點,然後進行點擊。
這樣,我們就順利地完成了一次點贊操作。
然後,我再來寫一個判斷,如果當前桌面上的點贊按鈕都點過了,就滾動屏幕,到下一屏繼續點贊:
while True: allLocation = pyautogui.locateAllOnScreen('agree.png') if len(list(allLocation)) > 0: like() # 調用點贊函數 else: try: pyautogui.scroll(-500) print('我滾了!') except: print('完蛋啦')
整個代碼運行起來是這樣的:
注意,在程序運行過程中,一定要將打開知乎頁面的浏覽器切換到桌面最上層,以保證你當前操作的是這個頁面。
這裡沒有寫終止條件,所以程序會一直運行下去,直到你手動終止。
總結整個栗子就是這樣的,簡約而不簡單,雖然只有幾行代碼,但是替我完成了一次自動化操作。可能這裡舉知乎的例子還不太恰當,因為知乎是有分頁的,如果是瀑布流的頁面,那真的可以一直點贊下去,或許你可以試試給 csdn 的文章點贊。
到此這篇關於Python利用PyAutoGUI實現自動點贊的文章就介紹到這了,更多相關Python PyAutoGUI自動點贊內容請搜索軟件開發網以前的文章或繼續浏覽下面的相關文章希望大家以後多多支持軟件開發網!