Python×医療事務(×トロント)

#医療 / #医療事務 / #IT / #トロント / #歯科助手 / #のんびり / #備忘録 / #趣味

PyAutoGUI

退屈なことはpython にやらせよう  でもピックアップされている PyAutoGUI

PyAutoGUI = RPA と考えていただければ分かりやすいです

RPAは結構費用が高く付くのでpythonでPyAutoGUIすれば費用は安め

 

無料のRPAもありますが

www.uipath.com

 

途中で挫折+pythonを使いたいのでPyAutoGUIを使用していきます

いつかUiPathも触ってみたいです

 

先に下記をimportしておく

import pyautogui as pg
import time
from time import sleep #timeモジュールのsleep関数


#import pyperclip(あまり関係ない)

PyAutoGUI でよく使うコード

ただひたすら下記コードを繰り返し使う作業に近い

 参照したHP↓

pythonで業務効率化/RPA自作 – 検討 その2 PyAutoGUI を試す。 | beginners Hub

 

> 画像とマッチする座標を画面上から取得

x,y = pg.locateCenterOnScreen("ファイル名",confidence=.5) 

PyAutoGUIで画像認識(locateOnScreen)【Python】 | ジコログ


>confidenceについて

公式サイトより

Screenshot Functions — PyAutoGUI documentation

confidence = 画面上の画像の位置を特定する精度を指定

無視できるほどのピクセルの違いで画像の位置を特定できない場合に役立つ
画像を読み込めないときに、調整する変数ということ
confidenceのみ追加の場合、0.5まで下げればコードが動いた
confidence変数の利用には、OpenCVが必須

 

>grayscale(そんなに使わなかった)

grayscale=True を渡すことで、わずかに高速化することができます(約 30% 程度)。 これにより、画像やスクリーンショットの色が脱色され、ロケートは高速化されますが、誤検出の原因となる可能性があります。
白黒にして、余計な情報を取り除くということです。

 

 > マウス座標を(x,y)まで移動

pg.moveTo(x=x//2, y=y//2)

MACの場合 //を使用し2割る

> マウスボタンをクリックする

pg.click()

 

>#sleep関数の引数は“秒”で指定

time.sleep(3)

> キーボードの()を押す

pg.press("tab")

pg.press("enter")

>ショートカット 同時押し

pg.hotkey('command'(今回の場合windowsでがctr), 'f')

 

> 文字入力

pg.typewrite("文字 英数字のみ")

pg.typewrite("文字 英数字のみ") 

 日本語の場合 どこかからコピー&ペーストで使用する形

そのため 該当の部分に移動or 画像(アイコン)クリック→表示→command(ctr)+Aで全体選択等をし コピー&ペースト のような作業をしないといけない

 

例として該当サイトにログインする際の一連のコード

import pyautogui as pg
import time
from time import sleep #timeモジュールのsleep関数
#import pyperclip

 

x,y = pg.locateCenterOnScreen("ファイル名.png",confidence=.5)

x,y = pg.locateCenterOnScreen("ファイル名.png",confidence=.5)

pyautogui/pg.moveTo(x=x//2, y=y//2)

time.sleep(3)

pg.typewrite("英数字")

pg.press("tab")

pg.typewrite("英数字")

pg.press("enter") 

 

 

 

今後参考になりそうなURL一覧と機能

https://www.octoparse.jp/blog/top-30-process-automation-tools-for-2018/

UiPath

https://www.uipath.com/ja/

ライセンス:無料、および商業

UiPathは、UiPath社が提供しているRPAツールです。UiPath社は、作業や業務を自動化するロボットを開発する会社です。UiPathは機能が豊富にある自動化ツールを開発する環境を提供しており、簡単にロボットでの業務の流れが構築できます。業務の流れのシナリオ化は、ロボットにさせるアクティビティ(動作)をドラッグ&ドロップすることによって簡単にできるだけでなく、「レコーダー」という人の動作を見て自動化するものを使用するのみです。.Netがわからない初心者でも向いています。されに、従業員250名/台未満、かつ年商約5億円未満の企業は無料で利用できます。


Webデータ取得ツール

16. Octoparse

https://www.octoparse.jp/

ライセンス:無料

Octoparseは、視覚的に分かりやすくデータを抽出できるWebスクレイピングツールです。Webページ自動認識の機能を備え、取得先のURLを入力すると、データが自動的に検出され、プログラミングの知識がなくても、簡単にデータを抽出できます。

それに、ソフトを使いやすくするために、Yahooショッピング、楽天マイナビ転職、Twitterなど数多くのWebスクレイピングテンプレートを提供しています。パラメータ(ターゲットページのURL、検索キーワードなど)を入力するだけで、データがどんどん抽出されてきます。取得したデータを、CSVExcel、またはデータベースなどのフォーマットとして保存することができます。

また、クラウド型のプラットフォームも提供するので、定期的にデータを取得可能で、自動取得したデータはクラウドに保存され、どこでもアクセスできます。ハードウェア保守も不要だし、ネットワーク中断に心配する必要もありません。

海外製品ですが、ソフトのUI、カスタマーサポートも全部日本語対応しています。しかも無料でも使えるので、初心者には一番オススメです。

17. WebScraper(Chrome)

http://webscraper.io/

ライセンス:無料

Web Scraperは、オンラインテーブルからデータを抽出できる、使いやすいスクリーンスクレイピングツールです。Web Scraperは動的なWebページからデータを抽出できます。サイトマップを使って、サイトをナビゲートし、複数のタイプのデータ(テキスト、テーブル、画像、リンクなど)を抽出します。また、ページをスクロールしたり、AJAX経由でデータをロードしたページングボタンをクリックしたり、ボタンをクリックしてより多くのデータをロードしたりするなど、JavaScriptで動的にロードまたは生成されたデータを抽出することもできます。また、データをCSV形式で簡単にエクスポートしたり、CouchDBに保存したりすることができます。

 

 

18. Scrapy

https://scrapy.org/

ライセンス:オープンソース

Scrapyは、Python で書かれているWebクローリングとスクレイピングフレームワークです。もともとはWebスクレイピング用に設計されており、APIを使用してデータを抽出したり、汎用のWebクローラーとして使用することもできます。Scrapyは、開発者がWebサイト動作に関する仮定のテストに使用できるWebクローリングシェルも提供します。

 

20. Outwit Hub

https://www.outwit.com/products/hub/

ライセンス:無料

OutWit Hubは、Webデータ抽出機能を備えたFirefox向けのアドオンで、Web検索を簡単にさせます。このWebクローラーは、表示中のWebページの詳細をパーツ毎に一覧で表示、必要なパーツをローカルに簡単にダウンロードできます。ニーズに応じて、大量のデータをスクレイピングできる単一のインターフェイスを提供します。OutWit Hubを使うと、ブラウザ自体から任意のWebページをスクレイピングしたり、自動エージェントを作成してデータを抽出したり、設定によってフォーマットすることさえできます。これは、最も簡単なWebスクレイピングツールの1つで、無料だし、コードを書くことなくWebデータを抽出できます。

 

 

 

テスト自動化ツール

21. Selenium

http://www.seleniumhq.org/

ライセンス:オープンソース

Seleniumは、WindowsMacLinuxなどのさまざまなWebアプリケーションやプラットフォームのファンクションテストを行うツールとして注目されています。Web自動化テスター、特に高度なプログラミングとスクリプティングスキルを備えたテスターの自動化フレームワークとして、JavaPHPC#PythonRubyJavaScript(Node.js)などの複数言語に対応できます。Selenimuは、柔軟性が高く、多くの機能が提供されているので,業界としてもSeleniumを無視できないほど重要なものになってきています。

 

 

 

タイピングゲームの自動化 

https://tex2e.github.io/blog/python/auto-SushiDA
RPAでは、画像認識や光学文字認識の精度を上げる
機械学習によって画像や音声のような非構造化データを学習し、RPAが得意な定型的なデータに加工することで、より広範囲な業務を自動化できる

 

画像認識で動く障害物避けゲームをプレイしてみよう 

https://note.com/benao_blog/n/n84a7d61eda69

 

OCRを使用する際に役立ちそう

pythonOCRの設定を

予めインストールが必要なもの

・pyautogui

・pyocr

・PIL

 

TesseractはOCRエンジンである

https://self-development.info/tesseractwindowsへインストールする【ocr】/