Python

PyAutoGUIで業務自動化(RPA)|Pythonでルーティンワークを効率的に処理する方法の基礎

Python

この記事では、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などをテキストデータに変換することも可能となります。

今回の記事は、以上です。

最後までお読みいただきありがとうございました。

コメント

タイトルとURLをコピーしました