この記事では、PyAutoGUIの基本的な使い方を解説します。
- とても面倒なドキュメントの単純処理の作業を自動化したい
- プログミラング初心者でもできる業務効率をあげる便利なPythonの使い方は?
こんな悩みをもっている方におすすめの記事です。
PyAutoGUIとは?
- PyAutoGUIとは、RPA(Robotic Process Automation) の機能を、Python で実装することが可能なライブラリです。
PyAutoGUIはプログラミング初心者でも比較的用意に実装できます。
ぜひ覚えておいて損はないと思います。
RPAとは?
業務効率化や生産性向上を実現するテクノロジーを指します。
RPAの例
- マウスやキーボードの操作を画像認識と組み合わせて自動化することです。
PyAutoGUIでできることは?
マウスやキーボードの操作を画像認識と組み合わせて自動化できます。
PyAutoGUIでできることの例
- 例えば、請求書から名前を抜き出して、エクセルにコピーアンドペーストする単純作業です。
こういった人間には少々厳しい大量の単純作業を、PyAutoGUIによって人間よりも速く、正確に処理をすることが可能です。
PyAutoGUIのインストール方法
以下のコードによりインストール可能です。
pip install pyautogui
Anacondaをインストールされている方は、以下のコマンドでもインストール可能です。
conda install -c conda-forge pyautogui
PyAutoGUIの基本操作
インポート
import pyautogui
スクリーンサイズの取得
パソコンの画面の大きさを取得する方法です。
人それぞれお使いのPCによってスクリーンサイズが異なるので、この処理は、よく使います。
screen_x,screen_y = pyautogui.size()
print('x_size:y_size',screen_x,screen_y)
実行結果は、以下です。
x_size:y_size 1280 800
お使いのPCのスクリーンのサイズによって数値が変わることに注意してください。
スクリーンの中央位置の取得
center_x = screen_x / 2
center_y = screen_y / 2
print('center_x_pos,center_y_pos:',center_x,center_y)
実行結果は、以下です。
center_x_pos,center_y_pos: 640.0 400.0
マスクの現在位置の取得
mouse_x,mouse_y = pyautogui.position()
print('x_pos:y_pos',mouse_x,mouse_y)
実行結果は以下です。
これは、マウスの現在位置によって、値が変わることに注意してください。
x_pos:y_pos 432 523
画面の原点とX,Y軸の方向は以下です。
画面左上が原点となります。
マウスの操作
絶対値の移動
以下のコードは、1秒かけて(1,1)に移動するという意味です。
pyautogui.moveTo(1, 1, duration=1)
実行すると画面左上に方にマウスカーソルが移動します。
相対値の移動
以下のコードで、-100,-100の分だけ現在位置から移動するという意味です。
pyautogui.move(-100, -100, duration=1)
実行すると画面左上の方に移動します。
クリックする
クリックは、以下のコードで可能です。
pyautogui.click()
ダブルクリックは、以下のコードです。
pyautogui.doubleClick()
右クリックは以下です。
pyautogui.rightClick()
スクロールする
スクロールは、以下のコードで可能です。
pyautogui.scroll()
スクロール量を第一引数にとります。
画像の自動認識
画像認識とは、特定の画像とスクリーンの画面上に一致する画像があった場合にその座標をリターンするというものです。
例えば、以下のような画像を用意して、デスクトップ上に存在するこのアイコンの位置を特定するということをやります。
デスクトップ上の左下にこのアイコンがあります。
このアイコンの画像をvs.PNGとして、保存しカレントディレクトリに格納し以下のコードを実行します。
icon_loc = pyautogui.locateOnScreen('vs.PNG')
print(icon_loc)
実行結果は、以下です。
Box(left=116, top=1241, width=263, height=219)
位置と、サイズがリターンされていることがわかります。
基本的な使い方は、このような感じです。
その他
座標(1, 4)まで7秒かけてドラッグ | dragTo(1, 4, duration=7) |
今の位置 + x=1, y=4の座標までドラッグ | dragRel(1, 4) |
左クリックボタンを押す | mouseDown() |
左クリックボタンを離す | mouseUp() |
これらを組み合わせて、業務効率化するためのアプリケーションを構築していきます。
まとめ
PyAutoGUIで業務自動化(RPA)について解説しました。
画像から文字を抽出しテキストデータに変換する方法を学びました。
これにより、例えば、pdfなどをテキストデータに変換することも可能となります。
今回の記事は、以上です。
最後までお読みいただきありがとうございました。
コメント