PythonWindows

WindowsでPython+Selenium+ChromeDriverでRPAする

Python

みなさんRPAはご存じかと思います。

RPAとは「Robotic Process Automation /ロボティック・プロセス・オートメーション」の略語で、ホワイトカラーのデスクワーク(主に定型作業)を、ルールエンジンやAI(人工知能)などの技術を備えたソフトウェアのロボットが代行・自動化する概念、と定義されています。

RPAは2017年くらいからブームになってますが、実は20年以上昔から効率化のために使われている概念ではあります。

私は10年くらい前に「UWSC」というRPAツールを使ってブログメンテナンス系のツールを自作したことがあったのでですが、現在は「UWSC」については開発は止まっているようです。

今回はとある案件で10年以上ぶりにRPAツールを作成する必要があったため調査してみたところ、Python(正確にはPython+Selenium+ChromeDriver)を使うことでRPAツールを作成することができそうでした。

そこで今回はPython+Selenium+ChromeDriverでChromeを自動操作するRPAツールを作ってみます。

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus

伊藤 望, 戸田 広, 沖田 邦夫, 宮田 淳平, 長谷川 淳, 清水 直樹, Vishal Banthia
3,449円(08/02 14:09時点)
発売日: 2018/11/14
Amazonの情報を掲載しています

ためした環境

今回は開発環境として、Hyper-V上のWindows10開発環境の仮想マシンに対してPythonをインストールしてみます。

以下で作成した仮想マシンになります。

必要なアプリのインストール

Pythonのインストール

Pythonのインストールについてはこちらの記事で紹介しています。

Selenimumのインストール

Seleniumのインストールは「pip install selenium」から行うことができます。

Chromeのインストール

当然ですが、Chromeのインストールも行います。

Google Chrome - Google の高速で安全なブラウザをダウンロード
新しい Google Chrome で毎日をもっと快適に。Google の最先端技術を搭載し、さらにシンプル、安全、高速になった Chrome をダウンロードしてご活用ください。

ChromeDriverのインストール

ChromeDriverのインストールについても「pip install chromedriver-binary」で行うことができます。

ここで注意となりますChromeDriverのバージョンをChrome本体のバージョンと合わせないと動作しません。

バージョンを指定しないでインストールしてしまうと差分が発生して動作しないということが多いのでバージョンを指定してインストールすることをお勧めします。

まずChromeのバージョンを確かめます。

Chromeのバージョンは84.xxxx系になっています。

なのでChromeDriverのページから84.xxx系に対応するChromeDriverのバージョンを確認します。

ChromeDriver - WebDriver for Chrome - Downloads
Current Releases If you are using Chrome version 93, please download ChromeDriver 93.0.4577.15 If you are using Chrome version 92, please download ChromeDriver...

対応バージョンが84.0.4147.30であることが分かったら、バージョンを指定してChromeDriverをインストールします。

事前確認

Pythonが動作することを確認する

まずは、簡単なPythonスクリプトが動くことを確認します。

Pythonスクリプトを「C:\Python\TestRPA」フォルダに配置して下さい。

print("Hello world!")

Powershellコンソールを起動して実行してみます。

これでPythonが動くことは確認できました。

Chromeの自動操作

次にいよいよSelenum+ChromeDriverを使ったRPAツールを作成していきます。

ページを開いてみる

まずはページを開いてみます。Yahooのトップページでも開いてみます。

import time
from selenium import webdriver
import chromedriver_binary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# 開くURL
url = "https://yahoo.co.jp/"
# ChromeDriverの呼び出し
driver = webdriver.Chrome()
# utlを開く
driver.get(url)
# 5秒待機
time.sleep(5)
# Chromeを閉じる
driver.close()

スクリプトを実行すると、自動的にChromeが開いてYahooのページが表示されて5秒経ったら閉じる、というRPAツールとしての動きが確認できます。

もし以下のようなエラーが表示された場合にはChromeDriverで操作できるバージョンにChromeを合わせて下さい。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 85

ChromeDriverをバージョン指定して再インストールします。
いったん「pip uninstall chromedriver-binary」コマンドでアンインストールしてからバージョン指定してインストールして下さい。こまかい対応方法は上部に記載しています。

スクリーンショットを取得する

ついでにスクリーンショットも取ってみます。

スクリーンショットが自動的に取得できれば、
「毎朝、監視系のシステムにログオンして問題がないかを目視でチェックする」
という業務を
「毎朝、自動取得されているスクリーンショットを目視でチェックする」
というような効率化することができます。(最終的にはチェックも自動化したいですが・・・)

先ほどのスクリプトに「driver.save_screenshot(‘./screen_shot.png’)」の行を追加しています。

import time
from selenium import webdriver
import chromedriver_binary
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

# 開くURL
url = "https://yahoo.co.jp/"
# ChromeDriverの呼び出し
driver = webdriver.Chrome()
# utlを開く
driver.get(url)
# 5秒待機
time.sleep(5)

# ScreenShotを取得します<-追加
driver.save_screenshot('./screen_shot.png')

# Chromeを閉じる
driver.close()

スクリプトを実行すると同じフォルダ内にスクリーンショットのファイルが保管されています。

今回は簡単ですが、Python+Selenium+ChromeDriverでのブラウザの自動操作について行いました。

これだけでもチェック業務などを自動化することができます。次はフォームへのログオンやWEBからの情報取得する方法について紹介したいと思います。

Pythonのオススメ勉強方法

私がオススメするPythonの効果的な学習方法は「Udemy(ユーデミー)」によるビデオ学習です。

「Udemy」は、オンライン学習の提供サイトです。学びたい人は多くある講座の中から受講したいコースを選択することができ、動画で学べるのが特徴です。

多くあるPythonのコースの中でもオススメするPythonのコースは以下となります!!

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル

このコースでは合計で28.5時間のビデオ講座があって、それらを受講するだけで、Pythonの基礎から応用まで学ぶことができます。

私も購入して受講していますが、内容としては初心者の方から上級者まで対応する幅広い内容になっています。

下手な書籍を何冊か購入するより、この動画コースを最初からじっくりと受けることで総合的なスキルを習得することができるできます。おそらくこれ以上の教材はないと思いますので、絶対おすすめです。

ちなみに、Udemyでは頻繁にセール(1か月に2,3回程度)が開催されているので、セールのタイミングで購入すれば90%OFFになる講座もあるため、セールが開催されてからの購入をオススメします!

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus

Selenium実践入門 ――自動化による継続的なブラウザテスト WEB+DB PRESS plus

伊藤 望, 戸田 広, 沖田 邦夫, 宮田 淳平, 長谷川 淳, 清水 直樹, Vishal Banthia
3,449円(08/02 14:09時点)
発売日: 2018/11/14
Amazonの情報を掲載しています

今回は以上となります。

コメント

タイトルとURLをコピーしました