TPTブログ

テックポート株式会社のブログです。 技術情報や製品・サービス情報、 また未経験社員がデータサイエンティストを 目指す奮闘記など、更新していきます。

pyautogui使ってみました。

こんにちは、えーちゃんです。
私は現在メンター兼受講生として、DSIT講座に参加しております。
DSIT講座とは何か?といいますと、弊社で開催している製造業向けのAI開発講座です。
初心者の方向けの内容となっているので、ご興味ある方はチェックしていただければと思います。

打倒90分ルール

さて、最近DSIT講座で演習課題がでております。
課題の中でニューラルネットを作成して学習させるのですが、そのトレーニングにかなり時間がかかります。

DSIT講座ではGoogle Colabを使用しているのですが、そこに立ちはだかるのが「90分ルール」です。
GoogleColabはブラウザ上で手軽にpythonのコードを書いたり実行できる素晴らしいツールなのですが、90分マウス操作などしないで放っておくと接続が切れてしまいます。
3~4時間かかるような学習を出かける前に始めて帰ってきたら結果をチェックしよう・・・とすると途中で中断されて泣きを見ることになります。

怠け者なので何とかしてGoogle colabを放置したい!と思い立ち調べものをしてみました。

90分ルールの攻略法

90分ルールを攻略するには主に
1. ブラウザの自動リロード機能を使う
2. マウス操作プロラムを組む

の二種類の方法があります。
1はAuto Refleshのような一定時間ごとにwebページを再読み込みしてくれる拡張機能を利用することです。
PCをスリープしないように設定して、自動リロードを60分おきくらいにするようにすれば好きなだけcolabを放置できます。プログラミング不要ですぐできますので一番手っ取り早いです(^^♪

マウス操作してみよう!!

続いて2ですが、pythonのpyautoguiというライブラリを使用いたしました。
こちらを使うとマウスカーソルの移動やキーボード入力をpythonから制御することができます。

組んだコードがこちらで、マウスカーソルを10秒おきに左右に動かし、クリックします。
PCをスリープしないように設定して、このコードを起動したのちに実行中のcolabのページを開けばcolabを放置できます。
終了させるときは「Ctrl + c」をターミナル上で入力します。

colabの画面をクリックするので、カーソルがクリックしたくないところ(閉じるボタンなど)にかぶらないよう注意してください。

import pyautogui as pg
import time
# マウスが動く幅
d = 100
# マウスが動く時間間隔[秒]
t = 10
print('Ctrl + c を押して終了')
try:
    while(True):
        time.sleep(t)
        pg.moveRel(d, 0, duration=1)
        pg.moveRel(-d, 0, duration=1)
        pg.click()
except KeyboardInterrupt:
    print('終了')

夏休みの課題

pyautoguiを使ってみましたが、90分ルール対策としては手間がかかりあまりいい方法ではないですね。
でも、ものが動くのをみると楽しくてついつい遊んでしまいました😊

このpyautoguiは画像認識とも組み合わせることができるようで、これを使ってPCゲームを攻略した人もいるそうです。
楽しそうなので私の大好きなマインスイーパーをpyautoguiで攻略するのを夏休みの宿題にしてみようとおもいます。
information-station.work