- 2018年7月19日
- ヨシダですけど
Webの操作を自動化してくれる「Selenium」を使ってみた
どーも、健康診断に行ってみたら高尿酸血症の判定がでたヨシダです。
ふざけんじゃねーよ!
まあ、そんな近況報告はいいとして。
本日はタイトルにもあります通り、「Selenium」というものを使ってみたので解説したいと思います。
環境は macOS High Sierra バージョン10.13.6 です。
Seleniumとは?
Webブラウザを使ってWebアプリケーションをテストするツールです。
もちろん無料で使えます。
人が手でWebブラウザを操作する代わりに「Selenium」がWebブラウザを操作してくれるのです。
今回は動画のように、ブラウザを立ち上げてグーグル検索に「yoshidamasaaki」と入力したあと、僕が趣味で作ったサイト「https://www.yoshidamasaaki.com/」を開き、5秒後にブラウザを閉じるという操作を自動化させてみました。
導入方法
MACのターミナルを起動します。
「Selenium」をpython言語で動かすので、まずはpythonが入っているかバージョンを確認します。
$ python --version
MacOSは最初からpythonがインストールされていますので大丈夫だと思いますが、もしバージョンが表示されませんでしたら、pythonをいれてください。
次に僕のMACに「Selenium」をいれていきます。
$ pip install selenium
もしpipコマンドが使えない場合は、pipコマンドを使えるように下記のコマンドを実行してください。
$ sudo easy_install pip
次にブラウザを操作するには、各ブラウザに合わせてドライバーを準備する必要があります。
今回はChromeを使用するので Chrome用WebDriverのサイトからChromeDriverをダウンロードします。
サイト:https://sites.google.com/a/chromium.org/chromedriver/
2018/7/19(木)現在では、最新が「ChromeDriver 2.40」みたいなので、クリックした後に「chromedriver_mac64.zip」をクリックして解凍してください。
すると「ダウンロード」に「chromedriver」があると思いますので、わかりやすいようにデスクトップに移動しておいてください。
これで環境は整いました。
実行方法
動画のように自動操作するためのコードを「selenium-yoshida.py」に保存します。
まずはデスクトップまで移動します。
$ cd /Users/yoshida/desktop
「selenium-yoshida.py」を作成して保存(esc+:wq!)。
$ vi selenium-yoshida.py
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
# ブラウザを開く。
driver = webdriver.Chrome(executable_path='/Users/yoshida/desktop/chromedriver')
# Googleの検索TOP画面を開く。
driver.get("https://www.google.co.jp/")
# 検索語として「yoshidamasaaki」と入力し、Enterキーを押す。
driver.find_element_by_id("lst-ib").send_keys("yoshidamasaaki")
driver.find_element_by_id("lst-ib").send_keys(Keys.ENTER)
# タイトルに「だよしのギャンブル日記」と一致するリンクをクリックする。
driver.find_element_by_link_text("だよしのギャンブル日記").click()
# 5秒間待機してみる。
sleep(5)
# ブラウザを終了する。
driver.close()
pythonを実行します。
$ python selenium-yoshida.py
これで動けば完璧です!
ファイル名やフルパスなどは各自任意の値に変更してくださいね。
ブラウザを操作するコードなどは、こちらのサイトが参考になるかと思います。
サイト:http://www.seleniumqref.com/api/webdriver_gyaku.html
感想
結構簡単に導入できましたね。python言語を知らなくても、参考サイトがしっかりしてるので、全然余裕でコードを書けます。
ただ思ったのが、セキュリティ的にみて、これ結構悪用できんじゃね??
例えば、ログイン画面でログインしまくったり、アクセスしまくってサーバーに負荷かけたり…いや、できちゃいますねこれ。
使い方によっちゃ、実は危険なツールな気がします。
みなさんは絶対にしないようにしてくださいね。
そして、セキュリティ対策もしっかりしてくださいね!
ありがとうございました。