Python自動化工具 – 實戰PyAutoGUI 來自動註冊Twitter帳號

python_automation_tools

目的:

根據先前的學習,我們對於python自動化應該有概念了,因此學習最重要的目的是使用,本文會透過自動化註冊Twitter的範例,讓初學者知道怎麼規劃、撰寫程式碼;完成一套自動化程式。

若您還沒有使用過Python,也還沒有設定開發環境,可以先看看此篇:

Python 超好用基本開發工具 – Anaconda + ATOM editor with packages

動手試試看:

還記得要怎麼開始嗎? 若完全忘記的人或還沒安裝這個套件的人;可以參考此篇 :

Python – 自動化工具 PyAutoGUI 釋放你的雙手

文章裡面有提到抓取滑鼠位置的功能,務必一定要善用。

import pyautogui
pyautogui.displayMousePosition()
把每一個按鈕需要點擊的地方,逐步紀錄座標值

透過這個方法,我們把整個註冊流程走一遍。並且把每一個需要點擊的地方,座標記錄起來。類似這樣:

註冊
1951 792

姓名
1111 550

輸入姓名

改用電子郵件
1043 730

電子郵件
1100 673

輸入email位址


1100 866

選擇


1330 866

選擇


1482 866

選擇

下一步
1538 440

下一步
1538 440

註冊
1351 884

下面已經將每個步驟,用PyAutoGUI的語法,編程好了,可以直接複製貼上到ATOM裡面。

提醒一下,每個人的螢幕因為解析度不同,所以座標點會不一樣,若直接複製下面的程式碼,可能會造成對位不同。所以本文只是提供一個開發的範例,可依照不同的需求自己更改套用。

import pyautogui

#暫停10秒,等待網頁視窗安置好
pyautogui.PAUSE=10
#滑鼠移動到註冊
#移動到 1951 , 792 
pyautogui.moveTo(1951,792,1)
#滑鼠左鍵點擊一下
pyautogui.click()

#暫停1秒,等待網頁載入
pyautogui.PAUSE=1

#滑鼠移動到姓名
#移動到 1111 , 550 
pyautogui.moveTo(1111,550,1)
#滑鼠左鍵點擊一下
pyautogui.click()

#輸入姓名
#名字可以自己更改
pyautogui.write('pyautogui')

#暫停1秒,等待網頁載入
pyautogui.PAUSE=1



#滑鼠移動到改用電子郵件
#移動到 1043 , 730 
pyautogui.moveTo(1043,730,1)
#滑鼠左鍵點擊一下
pyautogui.click()

#暫停1秒,等待網頁載入
pyautogui.PAUSE=1

#滑鼠移動到電子郵件
#移動到 1100 , 673 
pyautogui.moveTo(1100,673,1)
#滑鼠左鍵點擊一下
pyautogui.click()
#暫停0.5秒,等待網頁載入
pyautogui.PAUSE=0.5
#輸入email
#email也可以改成你想要的
pyautogui.write('pyautoguitester@gmail.com')




#滑鼠移動到月
#移動到 1100 , 866 一開始移動快 快到的時候慢
pyautogui.moveTo(1100,866,1,pyautogui.easeOutQuad))
#滑鼠左鍵點擊一下
pyautogui.click()
#暫停1秒,等待網頁載入
pyautogui.PAUSE=1
#按 下 鍵 8 下
for i in range(8):
    pyautogui.PAUSE=0.1
    pyautogui.press('down')




#滑鼠移動到日
#移動到 1330 , 866 
pyautogui.moveTo(1330,866,1)
#滑鼠左鍵點擊一下
pyautogui.click()
#按 下 鍵 5 下
for i in range(5):
    pyautogui.PAUSE=0.1
    pyautogui.press('down')



#暫停1秒,等待網頁載入
pyautogui.PAUSE=1

#滑鼠移動到年
#移動到 1482 , 866 
pyautogui.moveTo(1482,866,1)
#滑鼠左鍵點擊一下
pyautogui.click()
#按 下 鍵 10 下
for i in range(20):
    pyautogui.PAUSE=0.1
    pyautogui.press('down')


#暫停1秒,等待網頁載入
pyautogui.PAUSE=1


#滑鼠移動到下一步
#移動到 1538 , 440 
pyautogui.moveTo(1538,440,1)
#滑鼠左鍵點擊一下
pyautogui.click()

#暫停1秒,等待網頁載入
pyautogui.PAUSE=1

#滑鼠左鍵點擊一下,繼續下一步
pyautogui.click()

#滑鼠移動到註冊
#移動到 1351 , 884 
pyautogui.moveTo(1351,884,1)
#滑鼠左鍵點擊一下
pyautogui.click()

#暫停1秒,等待網頁載入
pyautogui.PAUSE=1

#完成,自動註冊帳號!

結果:

實際看一下成果吧!

auto_signup_twitter
example of twitter signup by pyAutoGUI

這邊有幾個要訣跟大家分享

  1. 最前面啟動程式的時候,最好預留一點時間,幫忙開好視窗。然後就不要 移動滑鼠了 。
  2. 在自動化運作的期間,不要做任何電腦的操作,以免造成座標偏移,導致自動化失效。
  3. 某些按鍵輸入,建議要讓它有些停等,或等待仔入,以免網頁還沒載入,pyAutoGUI 已經跑到下一步,造成後面的錯誤。

小結:

本次實際帶大家透過Twitter的首頁,了解並使用pyAutoGUI自動化的開發方式,逐步把程式碼填出來,相信有跟著實際操作的人,一定會相當有成就感。

不過一旦開始實際製作以後,就會發現在頁面控制的部分,PyAutoGUI仍有些不足,例如:完成註冊以後,需要去註冊的電子郵件信箱內,擷取認證碼。再次回填,這樣的步驟,若用PyAutoGUI來達成,則需要另外控制滑鼠或是快速鍵再次開啟新的視窗或分頁,並且登入信箱等等。

這些繁瑣的步驟,其實若與Selenium整合一起用的話,可以節省開發與來回測試的大量時間。 相信師父領進門,修行在個人,大概就是這個意思了。到目前為止,我相信大家都有能力自己開發不同的應用,例如 :自動訂票系統、搶票系統等等。 是不是相當實用呢?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *