Python と Selenium でブラウザを操作して Google 検索する所までやってみよう

2021年9月25日土曜日

Python

t f B! P L

Python でブラウザをプログラミングによって操作するライブラリである「Selenium」を使って、Chrome を操作して、Google で検索するところまでを自動化する方法を紹介します。

スポンサーリンク

Seleniumのインストール

まずは、Selenium のインストールを行いましょう。

pip でインストールする場合は、

pip install selenium

Anaconda 環境の人は、

conda install -c conda-forge selenium

Chrome Web Driver をインストール

Chrome を Selenium から操作するための WebDriver をインストールします。Seleniumは WebDriver を仲介してブラウザを操作するため、WebDriverのインストールが不可欠です。

まず Chrome本体のバージョンを確認する

インストールする Chrome Web Driver のバージョンは、Chrome 本体と同じか、それよりも下位のバージョンである必要があります。

Chrome の [設定] → [Chromeについて] から、ブラウザ本体のバージョンを確認しておきましょう。また、そもそも Chrome をインストールしていない人は、新しくインストールしましょう。

Web Driver のダウンロード

Chrome の WebDriver は次の URL よりダウンロードします。特に理由がなければ、Chrome 本体のバージョンと同じ安定版をダウンロードしておきましょう。2021年9月時点では “93.0.4577.63” が最新バージョンです。

https://sites.google.com/chromium.org/driver/


リンクをクリックしたら、自分のOSに合ったファイルをダウンロードします。


ダウンロードしたファイルを解凍した `chromedriver` を、任意のディレクトリに配置します。

スポンサーリンク

Google 検索をするコードを書いてみよう

インストールが完了したら、Selenium を使って Google 検索を行うコードを書いてみましょう。

以下のサンプルコードは、 Google の検索ページを開いて、検索キーワードに「Python 入門」と入力し、検索ボタンをクリックして検索結果を表示する処理です。細かい部分の処理内容はコメントを見ていただければと思います。

from selenium import webdriver
import time

# WebDriverの生成
# 引数には、ダウンロードした chromedriver へのパスを設定する
driver = webdriver.Chrome("/Users/sato/Souce/python/chromedriver") 

#Googleにアクセス
driver.get("https://www.google.com")  

#検索クエリ入力フィールドの取得
query = driver.find_element_by_name("q")

#検索フィールドにキーワードを入力
query.send_keys("Python 入門") 

#入力して検索ボタンを自動化している様子を分かりやすくするため 2秒待機
time.sleep(2)

#Google検索ボタンをクリック
search_button = driver.find_element_by_name("btnK")
search_button.click()

#10行後にブラウザを閉じる
time.sleep(10)

#webdriverを閉じる
driver.quit()

サンプルコードを動かしてみよう

サンプルコードをエディタ等で保存したら、実行してみましょう。
次の GIF 動画のように、Chrome が起動して自動的に検索が行われていれば成功です。

セキュリティの警告が出たら(トラブルシューティング)

Mac OSの場合、インターネット上からダウンロードした実行ファイルは、いきなり実行できないようにセキュリティの制限がかけられていることがある。もし上のコードを実行して次のエラーが表示された場合は、セキュリティの許可を設定する必要があります。


[システム環境設定] → [セキュリティーとプライバシー] を選択します。


[一般] タブを選択すると、直前にエラーになった chromedriver がブロックされたメッセージが表示されているため [このまま許可] をクリックします。


もう一度コードを実行すると、今度はダイアログに [開く] というボタンが表示されるため、この[開く] をクリックします。


これで、chromedriver の実行が許可されて、次回からは警告も表示されずプログラムを実行することができます。

スポンサーリンク

さいごに

Python + Selenium で Chrome ブラウザを、プログラミングにより操作する方法を紹介してきました。今回紹介した方法を使えば、ログインが必要なページのブラウジングも自動化することが可能なので、どんどん活用していきたいですね。

スポンサーリンク

QooQ