やりたいことをやるだけさ

育児、コーチング、自己啓発、アドセンス、やりたいことをやるだけさ

pythonで画像認識してクリックするプログラムの完成

ここ二、三日ずっとプログラムを考えていて

pyautoguiを使って、画像認識して

クリックするプログラム

 

あるサイトをスクレイピングするのに

今までは単純に要素を

find elementで調べてクリックすれば

よかったのだが

 

最近の仕様変更で

クリックする対象が

#shadow rootの中にネストされてしまい

findできなくなってしまったのだ

 

shadowの中から対象の要素を探す方法を

ずうっと考えていたのだが

 

それは諦めることにした

できないことないような気もするが

 

じゃあどうしたかというと

人間がその、オブジェクトを探してクリック

するという挙動をプログラムにするしかないと

 

そこで思いついたのが

pyautoguiで

 

対象の画像をスクショして

ペイントでトリミングして

それをデスクトップに保存しておく

 

pythonも一応3.10までバージョンアップし

pyautoguiに必要なopencvなどもインストール

 

じゃまなpython2.7とか3.8は環境変数までしっかりアンインストール、削除。

 

open cvとかのpipでのインストールが

意外と難しくてpip installだけだとうまく動いてくれなくて

py -m pip installでうまくインストールしてくれた。

 

py -mをつけることが

若干イレギュラーな感じがして

なんか嫌なんだよね

 

最初にちゃんとpath通したはずなんどけどな

 

んで、pyautoguiで組んでみた所

 

なかなか画像を認識しない

そこで

locate on screenの

confidenceを0.7くらいにしても

 

まだだめ

 

画像を認識する範囲をregionで絞ることにした

 

窓フォトを使って範囲を確定させる

 

一定の範囲に絞ってみたところ

ちゃんと認識してくれるようになった。

 

人間が動かすようにマウスが動いて

クリックするのは見ててなかなか

面白い、カーソルが勝手に動くところを肴に

一杯いけるわ。

 

もう少し拡張させるかなあ

f:id:naruzawan:20220116111937j:image