Seleniumとは
『Selenium』とは、ChromeやFireFoxなどのブラウザを自動で操作できるライブラリです。
主にWebの情報を自動で取得するスクレイピングツールとして利用されています。
Seleniumを使うまでの準備
PythonでSeleniumを使用するには、準備が必要となります。
- Seleniumのインストール
- 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)を開いて、検索を行い、検索結果の一覧を取得したいと思います。
- Googleの検索ページを開く
- Googleの検索ページで検索する
- 検索結果の一覧を取得する
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ページから情報を取得する必要がある場合、プログラムで自動化することで作業の効率化に繋がると思います。興味のある方は試してみて下さい。