pyautogui とは
Pythonでデスクトップオートメーションを簡単に行うためのモジュールです。
このモジュールを使用すると、マウスの動きやクリック、キーボードの入力など、ユーザーが普段手動で行う操作をプログラムから自動化できます。
使い道
例えば、Celenium ライブラリはブラウザ上のスクレイピングだけなのに対し、こちらはGUI上でファイルのドラッグなども可能。
組み合わせると大部分のルーティン業務は自動化できそう。
bot と認識されないメリット(?)もあります。
基本関数
click(x, y)
モニター上の座標をクリックする。
下で紹介する画像認識で、その見つかった画像(アイコン)をクリックさせることも可能
moveTo(x, y)
モニター上の座標にポインタを移動させる。
scroll()
マウスホイールを上下に動かす。
例えば、Webページで特定の画像が見つからなかったら下にスクロールさせる、というような使い方が可能
dragTo()
ドラッグ&ドロップする。ファイルの移動等に使える
画像判定
locateOnScreen()
ディスプレイ上に、指定した画像が存在するかどうかを調べる。存在する場合、その座標が返る。
特定のアイコンが画面上に存在したらそれをダブルクリック、といった用途で使える。
後述のパラメータを指定して使う。
※複数モニタ使用の場合、メインディスプレイが対象となる
※Retinaディスプレイの場合は、座標が2倍になるので要注意
confidence
一致度の確からしさ。
デフォルトが1(完全一致)になっていて、基本的にこの引数を1より小さく指定しないと画像は取得できない。
0.5 位だと、思わぬ似た画像に引掛かる場合もある
0.7 位ならだいたい見つかる
0.95 にすると、ほぼ似た画像は排除できる
画像の明度については 判定が弱いようで、例えば以下画像だと、0.9上にしないと区別できなかった。
confidence を .8 にすると、左のグレースケールの画像でも一致すると判定された。
※grayscale というパラメータも存在するが、そちらを False にしても同じ
この画像の場合だと、0.9以上で右にしか一致しなくなった
region
画像を探す範囲をタプルで指定できる。
例えば、(0,100, 400, 300) と指定すると、座標(0, 100) から 400(w) × 300(h)の範囲を検索する
所管
MLと組み合わせると、更に色々と面白いことができそうな予感。
触ってて楽しい。