Seleniumというパッケージをインストールし、Chrome Driverをインストールすると、Pythonを使ってGoogle Chromeのブラウザを自動で操作することができます。ここではGoogle検索を自動で行う方法を紹介します。
こんにちは。wat(@watlablog)です。
Pythonを使えばインターネットブラウザ操作の自動化も容易です。ここではWeb情報収集の基本であるGoogle検索の自動化を紹介します!
当ブログで紹介している内容はWebスクレイピングの一例に過ぎません。僕はPython特化型学習サービス「PyQ(パイキュー)」で基礎を覚えました。体系的にPythonプログラミングやWebスクレイピングを覚えたい方は是非「PyQでPython学習!実際に登録してみた感想と気になる料金」の記事をご覧下さい。
Google検索をSeleniumで自動化!
Seleniumとは?
Seleniumとは、Pythonを始めとするプログラミング言語でWebブラウザを操作するためのライブラリパッケージの名称です。
Webスクレイピングをする時に頻繁に利用されるライブラリであり、現在はGoogle Chromeのブラウザを操作する方法が主流のようです。
Google Chromeを自動操作するために、今回はSeleniumのwebdriver関数を使います。
ひと昔前はブラウザのページにSeleniumで作成したJavascriptを埋め込んで実行することで自動操作を実現させていたそうですが、それだとセキュリティ上の問題で制限を受けることもあり、現在のwebdriverではOSの機能やブラウザに備わっている機能を使って操作する方法にシフトしたそうです。
このブログでは「PythonでWebスクレイピング!Requestsで情報取得!」で紹介したように、直接URLを送信してHTMLソースコードを取得する方法を説明しました。
しかしこの方法だと、ブラウザ上の検索ボックスに値を入力したり、スクロールした時の挙動をみたりといったことはできません。
Seleniumを使ってGoogle Chromeを自動操作するということは、実際にユーザが操作する方法と同じことをするため、ログイン操作やページ遷移といったことまで可能になります。
プログラムの前に必要な準備
これからPythonを使ったGoogle検索の自動化プログラムを紹介しますが、コードを問題無く実行するために、事前にいくつか必要なことがあります。
seleniumをインストールしよう!
今回使うライブラリパッケージであるseleniumは以下のpipコマンドでインストールしましょう。
pipについては「Pythonのパッケージ管理委ツール pipの使い方とコマンド集」を参照下さい。
1 |
python -m pip install selenium |
chromedriverをインストールしよう!
Google Chromeを操作するためには専用のドライバが必要です。このドライバもpipでインストールすることが出来ますが、バージョンやパスの件等知っておいた方が良いことがいくつかあります。
それらは「Python/ChromeDriverインストールとパスの通し方」にまとめましたので、是非この記事も参考にして下さい。
自動でGoogle検索するPythonコード
自動でGoogle検索をする全コードを以下に示します。詳細はコード内のコメントに記載しましたが、検索ボックスの要素を.find_element_by_nameで探す所がキーポイントです。
1 2 3 4 5 6 7 8 9 10 11 12 |
import time # スリープを使うために必要 from selenium import webdriver # Webブラウザを自動操作する(python -m pip install selenium) import chromedriver_binary # パスを通すためのコード driver = webdriver.Chrome() # Chromeを準備 driver.get('https://www.google.com/') # Googleを開く search = driver.find_element_by_name('q') # HTML内で検索ボックス(name='q')を指定する search.send_keys('WATLABブログ') # 検索ワードを送信する search.submit() # 検索を実行 time.sleep(5) # 5秒間待機 driver.quit() # ブラウザを閉じる |
以下の画像はGoogleトップページのHTMLソースコードをChromeで表示させたもの(PCであれば、ブラウザの「…」→その他のツール→デベロッパーツール、から表示可能)ですが、.find_element_by_nameで探しているname="q"はこのソースコードを見れば書いてあります。
Webスクレイピングをする場合はこのHTMLソースコードを頻繁に見ることになると思いますので、慣れておきましょう!
実行結果(動画)
以下に上のコードを実行した時の動作をキャプチャした動画を示します。
こんなことが自動で出来るようになるなんて…プログラムというのは素晴らしいですね!
まとめ
本記事では、Webスクレイピングでよく使われるWebブラウザ自動操作ライブラリであるSeleniumを使ってみました。
Seleniumの他にもchromedriverというドライバのインストールも必要ですが、非常に簡単なコードでGoogle検索が自動でできるということが確かめられました。
まずは「検索の自動化」が出来ました!要素毎に技を習得していき、少ししたら組み合わせたソリューションを公開する予定です!
Twitterでも関連情報をつぶやいているので、wat(@watlablog)のフォローお待ちしています!
コメント