1. HOME
  2. ブログ
  3. IT技術
  4. 【Python】PyAutoGuiの画像認識で人間の操作を自動化(RPA)する

【Python】PyAutoGuiの画像認識で人間の操作を自動化(RPA)する

PyAutoGuiとは?

「PyAutoGui」は、Python のモジュールの一つです。

近年流行している RPA(Robotic Process Automation) の機能を、Python で実装することが可能になります。

人間が操作しているのと同様に、マウス・キーボードの操作を画像認識と組み合わせて自動化することができます。

うまく活用すると、繰り返しの単調な作業などを簡単に自動化させることができます。

非常に魅力的なモジュールで使い方はアイデア次第で無限大の可能性があり、使い方も簡単です。

本記事では、そんな「PyAutoGui」の使い方をご紹介したいと思います。

こちらの記事もオススメ!

PyAutoGuiの導入方法

PyAutoGuiのインストール

「PyAutoGui」は Python のモジュールなので、お馴染みの pip コマンドを使ってインストールします。

OpenCVのインストール

画像認識の精度調節が可能になるため、「OpenCV」もインストールておきましょう。

プログラムでPyAutoGuiの読み込み

上記2つをインストールした後は、プログラム内から以下のようにモジュールを読み込みます。

準備完了!

これで、 PyAutoGui を利用する準備が整いました!

次は、PyAutGui の使用方法を説明します。

PyAutoGuiの使用上の注意

PyAutoGuiの使用上の注意については、以下となります。

操作不能を回避するために

RPA で無限ループなど、問題のある状態でプログラムを実行してしまうと操作不能に陥ってしまうことがあります。

そのため、PyAutoGui では緊急時にプログラムを停止させるために 「FailSafe 機能」が実装されています。

FaleSafe機能を使うには

PyAutoGui の「FaleSafe 機能」を使うためには、プログラム実行中にマウスカーソルを一番左上 (座標 0, 0) に移動させます。

マウス操作を行うプログラムの場合、座標 (0, 0) へマウスを移動させることも難しくなることがあるので注意してください。

画面遷移前に次の操作を実行させないために

PCの処理はタイミングによってすぐに終わったり、時間がかかったり変動するものです。

例えば、ボタンをクリックさせて画面遷移を伴う処理の場合、何も考えずに操作を順番に Python コードに実装したとします。

すると、1回目のクリックの後に、画面遷移を待たずに次の処理をしてエラーになることがあります。

そのため、画面遷移に必要な秒数を予め指定してウェイトさせるか、画像認識を利用して次の画面の画像が表示されるまでウェイトさせるような機能の実装が必要になります。

今回の例で利用するPyAutoGuiの関数

キーボードのキーを押下する(press)

キーボードで文字列を入力する(write)

画像を認識して座標を取得する(locateOnScreen)

該当の画像が存在しない場合は、None を返します。

また、 confidence の値を1から下げていくことで、画像認識の曖昧マッチングが可能になります。

これにより、画像認識用の画像ファイルを保存する際の劣化などに対応することができます。

指定の座標でマウスの左クリックをする(click)

キーボードを同時押しする(hotkey)

「CTL + C」などのキーボードの同時押しを実現します。

その他の関数

他にも様々な機能がありますので、詳細なマニュアルについては以下のオフィシャルドキュメントを参照してください。

【PyAutoGUI’s documentation】
https://pyautogui.readthedocs.io/en/latest/

【実装例】PyAutGuiでExcel操作を自動化

今回の実装例では、以下の様な処理を自動化してみます。

  • 1.Winキーを押下してExcelを起動
  • 2.新しいブックを作成
  • 3.セルに文字(“Hello PyAutoGui”)を入力
  • 4.ファイル名を付けて保存
  • 5.Excelの終了

コード

上記作業を 「Python + PyAutoGui」を使って自動化すると、以下のようになります。

今回は、時間のかかる Excel の起動待機のみ、画像認識を使った処理待ちをさせています。

その他の処理待ちは、 time.sleep を使って決め打ちで処理させています。

プログラムで使用している画像認識用のファイル

1.empty_book.jpg

2.this_pc.jpg

実行してみましょう!


こんな感じで動きました!

面白いですね!

さいごに

「Python + PyAutoGui」の使い方はご理解いただけましたか?

作れるものはアイディア次第で無限大です!

例えば、ゲームのレベル上げのような繰り返し作業を自動化させることもできますし、業務での単純作業を効率化させることもできます。

是非みなさんの回りにある単純作業を、Python で自動化して楽をしちゃいましょう!

記事を書いた人

\ 三度の飯よりPython大好き /
(株)ライトコードは、WEB・アプリ・ゲーム開発に強い「好きを仕事にするエンジニア集団」です。
Pythonでのシステム開発依頼・お見積もりはこちらまでお願いします。
また、WEB・スマホ系エンジニアを積極採用中です!
※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事