Python

【Selenium入門】PythonでChromeを操作する基本を解説!

Seleniumとは

『Selenium』とは、ChromeやFireFoxなどのブラウザを自動で操作できるライブラリです。
主にWebの情報を自動で取得するスクレイピングツールとして利用されています。

Seleniumを使うまでの準備

PythonでSeleniumを使用するには、準備が必要となります。

  1. Seleniumのインストール
  2. Webドライバ(ChromeDriver)のダウンロード

Selenimのインストール

pipコマンドを使用して、Seleniumをインストールする。

pip install selenium

Webドライバー(ChromeDriver)のダウンロード

ブラウザを操作する為には、操作するブラウザに対応したドライバが必要となります。
今回はChrome版のダウンロード方法について記述します。

Chromeのバージョンを確認する

現在、使用しているChromeのバージョンを確認します。
バージョンの確認は
「Googleメニュー」→ 「ヘルプ」 → 「Chrome について」から確認できます。

ChromeDriver をダウンロードする

現在、使用しているバージョンに対応するChromeDriverをダウンロードします。
ChromeDriverは「https://chromedriver.chromium.org/downloads」からダウンロードします。

ダウンロード一覧ページが表示されるので、先ほど確認したバージョンと同じChromeDriverを選択して下さい。

Windowsを使用している場合は次のファイルをダウンロードします。

ダウンロードの対象は各自のOSによって異なるので注意して下さい。

ChromeDriver を任意のフォルダに移動する

ドライバの保存先はどこでも問題ありません。各々、分かりやすい場所に格納して下さい。
例:Cドライブ直下に「ChromeDriver」フォルダを作成して、保存する

SeleniumでChromeブラウザを操作する

ここからは実際にPythonからSeleniumライブラリを利用して、Chromeブラウザを操作したいと思います。今回はグーグルの検索ページ(https://www.google.com)を開いて、検索を行い、検索結果の一覧を取得したいと思います。

  1. Googleの検索ページを開く
  2. Googleの検索ページで検索する
  3. 検索結果の一覧を取得する

Googleの検索ページを開く

# モジュールをインポート
from selenium import webdriver
# ドライバーをセット
driver = webdriver.Chrome(executable_path='C:\ChromeDriver\chromedriver.exe')
# Chromeブラウザを起動
driver.get('https://www.google.com')

Googleの検索ページで検索する

Webページを操作するにはWebページのHTMLを取得する必要があります。

HTMLを取得する

デベロッパーツールを開いてHTMLを確認します。
デベロッパーツールは
「googleメニュー」 → 「その他ツール」 → 「デベロッパーツール」で表示できます。

デベロッパーツールで次のようにHTML要素を取得します。

<input class="gLFyf gsfi" jsaction="paste:puy29d;" maxlength="2048" name="q" type="text" aria-autocomplete="both" aria-haspopup="false" autocapitalize="off" autocomplete="off" autocorrect="off" autofocus="" role="combobox" spellcheck="false" title="検索" value="" aria-label="検索" data-ved="0ahUKEwjlkZGYsbP1AhVRslYBHdqbA7AQ39UDCAY">

検索項目へ入力を行う

前項で取得したHTMLを利用して、検索項目への入力を行います。
今回はクラス名(class=”gLFyf gsfi”)から検索項目に入力をします。

# 検索項目の要素を取得
input_element = driver.find_element_by_css_selector('.gLFyf.gsfi')
# 検索項目に「Python」をセット
input_element.send_keys('Python')

「Google 検索」をクリックする

「Google 検索」ボタンも同様にHTMLを確認します。
今回はボタン名(name=”btnK”)から「Google 検索」ボタンをクリックします。

#「Google 検索」ボタンをクリック
button_element = driver.find_element_by_name('btnK').click()

検索結果一覧を取得する

検索結果一覧の取得も同様にHTMLを確認します。
今回は「h3」タグで書かれた情報を取得したいと思います。

#「h3」タグ要素を取得
htag_elements = driver.find_elements_by_tag_name('h3')
# 検索結果の一覧を出力
for htag_element in htag_elements:
    print(htag_element.text)

まとめ

PythonでSeleniumライブラリを利用した結果、数行のプログラムコードで検索結果の一覧を取得することができました。定期的にWebページから情報を取得する必要がある場合、プログラムで自動化することで作業の効率化に繋がると思います。興味のある方は試してみて下さい。