Python SeleniumでGoogle検索を自動実行する方法 | スクレイピング入門

※本ページはアフィリエイト広告を利用しています

ウェブスクレイピングは、ウェブページからデータを抽出する技術です。

PythonのSeleniumライブラリを使用することで、ブラウザの操作を自動化し、ウェブページから必要な情報を効率的に取得することが可能になります。

この記事では、Seleniumを利用してGoogleのトップページを開き、「Murasan IT Lab」というキーワードで検索を実行する簡単なスクリプトを紹介します。

この記事でわかること
  • Seleniumのインストール方法
  • Seleniumで操作したいUIのclass属性の取得方法
  • SeleniumでGoogleの自動検索を実行するためのPythonサンプルコード
目次

Seleniumとは

Seleniumは、ウェブアプリケーションのテストを自動化するフレームワークで、Selenium WebDriverを使ってプログラムからブラウザを制御します。

多くのプログラム言語とブラウザに対応し、ウェブページの要素を操作やユーザーアクションのシミュレーションが可能です。また、ウェブスクレイピングにも利用され、ウェブページからデータを効率的に抽出する作業を支援します。

ライブラリのインストール

必要なライブラリをインストールするため、コマンドプロンプトで以下のコマンドを実行してください。

pip install selenium

Google検索のテキストボックスのclass属性を調べる

今回は、GoogleのWebページの中から、検索キーワードを入力テキストボックスを取得する方法としてclass属性を使用します。

このclass属性は、事前にGoogleのページを開発者ツールで開いて確認しておく必要があります。

開発者ツールを開く

Google検索のページを開き、画面上を右クリック→「検証」を選択することで開発者ツールを開きます。

検索キーワードを入力するテキストボックスのclass属性を調べる

検索キーワードを入力テキストボックスにマウスカーソルを写すと、以下のように要素の該当する個所の情報がグレーに変わります。

ここにテキストボックスに関する情報が表示されていますので、今回使用するclass=の値をコピーしておきます。

作成したPythonコード

今回作成したサンプルコードは、PythonのSeleniumライブラリを使用して、Googleのトップページを開き、「Murasan IT Lab」というキーワードで検索を実行します。

検索後、検索結果画面が表示されるまで最大10秒間待機し、表示されたらさらに10秒間プログラムを一時停止してユーザーが検索結果を確認できるようにします。最後に、ブラウザを閉じてプログラムを終了します。

コード解説

  1. WebDriverのインスタンスの作成:
    • webdriver.Chromeインスタンスを作成し、driver変数に格納します。
    • executable_path引数でchromedriverのパスを指定します。
  2. Googleのトップページを開く:
    • driver.getメソッドでGoogleのトップページを開きます。
  3. 検索ボックスの取得:
    • driver.find_elementメソッドで、class属性がgLFyfのHTML要素(検索ボックス)を取得し、search_box変数に格納します。
  4. 検索キーワードの入力:
    • search_box.send_keysメソッドで検索キーワードMurasan IT Labを検索ボックスに入力します。
  5. Enterキーの送信:
    • 再度search_box.send_keysメソッドを使用して、Enterキーを送信し、検索を実行します。
  6. 検索結果画面の待機:
    • WebDriverWaitオブジェクトのuntilメソッドを使用して、検索結果画面が表示されるまで最大10秒間待機します。
    • expected_conditions.presence_of_element_locatedメソッドで、id属性がsearchの要素(検索結果エリア)が存在することを確認します。
  7. 検索結果の確認のための待機:
    • time.sleepメソッドでプログラムの実行を10秒間一時停止し、ユーザーが検索結果を確認できるようにします。
  8. ブラウザの終了:
    • finallyブロック内でdriver.quitメソッドを呼び出し、ブラウザを閉じます。これにより、エラーが発生しても必ずブラウザが閉じられるようにします。

作成した全体のソースコード

import time 
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# WebDriverのインスタンスを作成
driver = webdriver.Chrome()

try:
    # Googleのトップページを開く
    driver.get('https://www.google.com')

    # 検索ボックスを見つける
    search_box = driver.find_element(By.CLASS_NAME, 'gLFyf')

    # 検索キーワードを入力
    search_box.send_keys('Murasan IT Lab')

    # Enterキーを送信して検索を実行
    search_box.send_keys(Keys.RETURN)

    # 検索結果画面が表示されるまで待機
    WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, 'search'))
    )
    
    # 10秒間待機してユーザーが検索結果を確認できるようにする
    time.sleep(10)
finally:
    # ブラウザを閉じる (エラーが発生しても必ず実行)
    driver.quit()

実行結果

先ほど作成したPythonコードを実行すると、Seleniumによってブラウザが起動、検索実行され、以下のように検索結果ページを表示することができました。

まとめ

今回は、PythonとSeleniumを使用してGoogleでキーワード検索を実行する基本的なスクリプトを作成し、検索結果画面を表示して確認する方法を解説しました。

このスクリプトは、ウェブスクレイピングの基本を理解し、さらに複雑なスクリプトを作成する基盤となりますので、このコードを改良してさらに高機能なスクリプトを実装してみてください。

それでは、また次の記事でお会いしましょう。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

CAPTCHA


目次