マウスやキーボードの操作をPythonを使って自動化する方法を解説していきます
(マウスやキーボードの操作をGUI操作ということもあります)
GUI:Graphical User Interface
コンピュータの画面上に表示されるウィンドウやアイコン、ボタンなどを使ってマウスやキーボードで操作できる仕組み
この記事を読むとどのようなことができるかについてこちらの動画をご覧ください
動画の解説
- デスクトップ上の「Google Chrome」アイコンまで、マウスカーソルを移動 & ダブルクリック
- 「検索ボックス」まで、マウスカーソルを移動
- 「nobushige.com」を入力 ~ Enter押下
- 「PROGRAMMING」が表示されている位置まで、マウスカーソルを移動 & クリック
ここでは解説用に、nobushige.com (nobby blog)へのアクセスを例として説明しています
この操作はとても汎用性がひろくデスクトップ上に表示される画像を見つけてマウスを動かすという作業全般に使用できます
ルーティンワークをパソコンで実行できるようになるのでとても便利でおすすめです!
Jupyter Lab起動
Jupyter Labがインストールされていない方は下記の記事にインストール方法の説明がありますので
参考にしてください
該当箇所は、目次からとどって、「2. エディタ入手」 >> 「2. Jupyter Lab(ジュピターラボ)入手」 にあります
Jupyter Labを起動させます
コマンドプロンプトを起動(Winボタン ~ 「cmd」)
Winボタン
を記述してEnter押下
これでJupyter Labが起動します
ここではファイル名をわかりやすく「pyautogui.ipynb」としています
コードの説明
この記事で取り扱うPythonのコードについて説明していきます
ライブラリのインポート
下記のコードを記入してライブラリをインポートします
from time import sleep
これらのライブラリが事前にインストールされていることが前提となります
まだライブラリがインストールされていない場合は、下記の記事にライブラリのインストール方法の説明がありますので参考にしてください
該当箇所は、目次からたどって、「3.ライブラリ入手」にあります
ライブラリがインストールされているかどうかの確認はコマンドプロンプトから確認可能です
コマンドプロンプト起動(Winボタン ~ 「cmd」)
を記述してenter押下
インストールされているライブラリの一覧が表示されます
ライブラリの名前が表示されている場合はインストール済みです
インポートするライブラリについて一つずつ解説していきます
pyautogui を インポートしています
as pg を記述しているのは、
コーディングするときに、pg と書くだけで、pyautogui を呼び出せるようにしています
pyautogui を使うためには、pyautogui と書く必要があります
しかしながら、pyautogui という文字が長いので、タイプミスの心配もあり
代わりに、pg と書くだけで pyautogui が使えるようにしています
pyautogui は、マウスやキーボードの操作がPythonで実行できるようになります
time から sleepをインポートしています
webサイト上でクリック操作をして次のページに切り替わるまで若干時間がかかる場合があります
この切り替わり時間を見越して、待機時間を作ってくれるのが time の sleep となります
プログラミングは何も指定がしないと次々にコードを実行していきますので
意図的に待機時間を作って上げる必要があります
googleサイトにアクセス
下記の手順でgoogleサイトにアクセスします
- デスクトップ上にある「Chrome」ショートカットを見つける
- 「Chrome」ショートカットまでマウスカーソルを移動する
- ダブルクリックする
コードは下記となります
pg.doubleClick(x,y,duration=1)
sleep(1)
「Chrome」ショートカットを見つけるためには事前に「Chrome」ショートカットと同じ画像を準備しておきます
事前に準備していた画像と同じものをパソコンのモニター上にあるかを探します
「Chrome」ショートカットの画像を準備する方法
「Win + Shift + S」押下 (スクリーンショットを作成する画面に切り替わります)
「Chrome」ショートカットを選択します
「Win」押下 & 「paint」入力(ペイントが起動します)
「Ctr + V」(先ほど選択したスクリーンショットを貼り付けます)
余分な箇所をトリミング
「ファイル」~「名前をつけて保存」~「PNG画像」
ファイル名は、わかりやすく「Chrome.png」としています
「Chrome.png」ファイルは、pyautogui.ipynb があるフォルダの中に 「img」を作成しその中に保存します
.locateCenterOnScreen()
( )内の画像ファイルを検索して座標を取得する pyautogui のメソッドです
( )内の
‘img/Chrome.png’ は、先ほど保存したスクリーンショットの画像ファイルです
confidence = 0.5 は、画像認識の曖昧さを設定しています
事前に準備した画像と、パソコンの画面上に表示される画像は多少差があります
そのたえ多少差があっても認識できるように曖昧さを設定しています
0.5 と指定すると、50%一致するところがあれば認識できます
パソコンの画面上に「Chrome」ショートカットを見つけたら
見つけた場所の情報を x と y に格納します
x は、横の位置
y は、縦の位置
となります
pg.doubleClick(x,y,duration=1)
.doubleClick()
( )内の座標までマウスカーソルを移動させダブルクリックする pyautogui のメソッドです
( )内の
x と y は、先ほど取得した「Chrome」ショートカットの位置の情報です
duration = 1 は、マウスカーソルを移動させる時間を設定しています
1 と指定すると、1秒で、指定した座標前マウスカーソルを移動させます
( )内の時間 プログラミングの処理を一時停止させる time のメソッドです
1 と指定すると、1秒 プログラミングの処理が一時停止します
「Chrome」ショートカットをダブルクリックしてgoogleのサイトが表示されるまで多少時間がかかるので
待機時間を設定しています
これでgoogleサイトが表示されます
検索ボックスに文字を入力
下記のコードで検索ボックスに文字を入力して検索します
pg.click(x,y,duration=1)
pg.write(‘nobushige.com’,0.1)
pg.hotkey(‘enter’)
sleep(2)
x,y=pg.locateCenterOnScreen(‘img/searchbox.png’,confidence=0.5)
pg.click(x,y,duration=1)
「searchbox.png」は検索ボックスをスクリーンショットで取得した画像ファイルです
先ほどの「Chrome.png」と同じようにスクリーンショットで画像を取得して img フォルダに保存しておきます
.write()
( )内の文字を入力する pyautogui のメソッドです
( )内の
‘nobushige.com’ は、nobushige.com が文字入力されます
0.1 は、文字入力の処理時間です
0.1 と指定すると、0.1秒で 文字入力されます
pg.hotkey()
( )内のキーを押下する pyautogui のメソッドです
‘enter’ と指定すると、enter が押下されます
画面が切り替わる時間があるので待機時間を2秒設定しています
これで「nobby blog」が表示されます
「PROGRAMMING」をクリック
下記のコードで「nobby blog」の「PROGRAMMING」をクリックします
pg.click(x,y,duration=1)
‘PROGRAMMING.png’ は「PROGRAMMING」の箇所をスクリーンショットで取得した画像ファイルです
こちらも‘Chrome.png’と同じようにスクリーンショットで画像を取得して img フォルダに保存しておきます
これで「PROGRAMMING」の記事が表示されるようになります
この記事で使用した ファイル(.ipynbファイル&画像ファイル)はこちらからどうぞ
pyautogui
今回は Python の pyautogui を使ってマウス&キーボードを操作する方法について解説しました
題材として「nobby blog」を使用しました
パソコンの画面上にあるアイコンなどを探してマウスを動かしてクリックやキーボードで文字入力という作業はよくある作業です
ルーティンになっていればこれを自動化することが可能です
とても便利でもう手作業をしていた頃には戻れなくなります
この便利さ皆様にも体験していただけると幸いです
コメント