こんにちは!
消費財メーカーでデータサイエンティスト兼デジタルマーケターをやっているウマたん(@statistics1012)です!
Pythonを使うと非常に色々なことが出来ちゃいます。
その中でもSeleniumを使ったブラウザの自動化は非常に便利。
普段なんとなーく惰性でやっているルーティンワークはもしかしたらSeleniumを使えばぜーんぶ自動化できてしまうかもしれません。
ぜひSeleniumの威力を知って色々な場面で使ってみましょう!
目次
Seleniumとは

Seleniumはブラウザを操作するためのオートメーションツールです。
この記事では、Pythonを用いて実装していきますが、JavaやRubyなど他のプログラミング言語でも実装することが可能。
Seleniumを使うことでWeb上で行う行動を自動化することができます。
検索やクリック、情報の抽出や画面キャプチャを撮って保存することなどが出来てしまうのです。
ぜひSeleniumを使いこなして普段使っている作業を自動化してみましょう!
Selenium×Pythonでいくつか挙動を試してみよう!

それでは、そんなSeleniumについていくつか簡単な実装をおこなっていきたいと思います。
この記事では、先ほど取り上げた4つ
・検索
・クリック
・情報取得
・画面キャプチャ
を自動化してみたいと思います。
前準備
意外とつまづきやすいのが、この前準備。
Seleniumを使ってブラウザを操作するためには専用のドライバーをダウンロードしなくてはいけません。
今回はChromeブラウザを使用するので、Chromeを動かすためのChrome Driverをインストールしていくのですがご自身が使っているChromeのバージョンとダウンロードするChrome Driverのバージョンが一致するようにしましょう!
ここが一致しないと上手く動作しません。
Chrome Driverは以下のページからダウンロードしてください。
自分が使っているChromeブラウザのバージョンはブラウザ右上の3点リーダーメニューから以下のように確認することができます。


この場合使っているChromeブラウザのバージョンは84なので、Chrome Driverのバージョンも84を選ぶようにしましょう!

ダウンロードしたChrome Driverは任意のディレクトリフォルダに格納しておきましょう。
以下のコードでChomeブラウザを動かす準備が完了!
1 2 3 4 | from selenium import webdriver import time driver = webdriver.Chrome(executable_path='Chrome Driverの格納パス') |
Googleで検索をしてみよう!
それでは準備が整ったところでGoogle検索をおこなってみましょう!
以下の公式HPに載っているSample testのコードを実行するとGoogle検索ができますよ!
1 2 3 4 5 6 7 8 9 | #Googleのブラウザを開く driver.get('https://www.google.com/') time.sleep(2) #スタビジを検索 search_box = driver.find_element_by_name('q') search_box.send_keys('スタビジ') search_box.submit() time.sleep(2) |
これで、Googleでスタビジと検索してくれます。
検索結果をクリックしてみよう!
続いて検索結果をクリックしてみましょう!
ここでは、検索結果の1位をクリックしてみましょう!
1 2 3 4 | #検索結果1位をクリック g = driver.find_elements_by_class_name("g")[0] r = g.find_element_by_class_name("r") r.click() |
find_elements_by_class_name(‘g’)で、クラスが’g’の要素を引っ張ってきています。
引っ張ってきた要素の中の1つ目の要素のさらにrクラスにアクセスしています。
そしてr.click()で実際にクリックアクションを実行することができるんです!
要素を指定する上では、HTMLの要素を把握することが必要です。
Chromeでは、Ctrl+Shift+Iでディベロッパーツールを開くことができ、ディベロッパーツールのElementsから各要素を確認することができます。


Webサイト上の情報を取得してみよう!
続いてサイトの情報を取得してみましょう!
これは先ほどのクリック時におこなった方法で要素を指定して抽出していきます。
Web上の情報を取得する行為はWebスクレイピングと呼ばれ、非常に汎用性が高く色々なところで利用されていますが、サイトやサービスによっては規制されていることも多いので注意しましょう!
1 2 3 | #h2の要素を取得 for h2 in driver.find_elements_by_tag_name("h2"): print(h2.text) |
ここでは、簡易的にH2のタグ要素を全て取得しました。
新着記事
データサイエンス
Python
おすすめサイト
Webマーケティング
スタビジでは、いくつかのカテゴリをトップページに並べており、それらが取得できましたね!
画面をスクリーンショットでキャプチャしてみよう!
最後に画面をスクリーンショットで保存する方法を紹介しておきます。
1 2 3 4 5 6 | #画面キャプチャ driver.maximize_window() driver.save_screenshot('スタビジ.png') #ブラウザを閉じる driver.quit() |
driver_maximize_window()で画面を最大化します。
そしてdriver.save_screenshot(‘○○.png’)でpng形式で画像を保存することができます。
この場合は、Pythonファイルと同ディレクトリに保存されますが、保存場所を明示的に示せばそこに保存することができます。
最後に全てのコードを1つにまとめて置いておきます。
Seleniumを勉強する方法

SeleniumはUdemyのコースが非常に優良で分かりやすいので是非チェックしてみてください。
Seleniumを動かすところからある程度の実装までであれば、この動画を見れば問題ないです。
PythonによるWebスクレイピング〜入門編〜【業務効率化への第一歩】

【オススメ度】 | |
---|---|
【講師】 | キカガクの執行役員。機械学習や統計を大学専攻 |
【時間】 | 2.5時間 |
【レベル】 | 初級 |
キカガクの執行役員で学生時代に機械学習や統計を専攻していた方が講師です。
若い先生ですが、非常に落ち着いていて分かりやすい!
内容は、スクレイピングのサイトを使って進みます(このコース用に作られたコースで非常に分かりやすい!)
サイトの中にサンプルコードもあるのでそれを参考にしながら進めることが可能です。
Pythonでスクレイピングと言えば、seleniumとBeautifulsoupがありますが、本コースではseleniumを使ってスクレイピングをおこなっていきます。
ChromeのバージョンとDriverのバージョンを揃えないと上手くいかないから要注意!
スクレイピングにおいて基本中の基本の内容だが講師の教え方分かりやすく納得の内容
画像のスクレイピングも学べます。
ディベロッパーツールの使い方や、HTML/CSSの知識があると非常にスムーズに学べます。
Udemyは世界最大の教育プラットフォームで僕自身も非常にお世話になっているプラットフォームです。

他にもいろいろなコースがありますので是非探してみてください!
Selenium×Python まとめ
Seleniumは非常に便利で面白い使い方が出来るのでぜひ色々と触ってみてください!
要素の抽出はBeautifulsoupでも出来るのでBeautifulsoupと組み合わせて使ってみてください!

この記事では、SeleniumをPythonで動かす方法について見てきましたが、Pythonは他にも色んな使い方ができます。
Pythonの勉強は以下の記事にまとめていますので是非チェックしてみてください!

イラスト出典:Illustration by Stories by Freepik