Python

【Python】第9章第9回:自動化スクリプト(selenium)


Warning: preg_match(): Compilation failed: regular expression is too large at offset 36233 in /home/wp769435/a-mun.com/public_html/wp-content/plugins/easy-table-of-contents/easy-table-of-contents.php on line 1806

本記事では、PythonとSeleniumを活用したウェブ操作の自動化スクリプトについて解説します。Seleniumの基本的な使い方や、簡単なサンプルスクリプトを紹介します。

0. 記事の概要

この記事を読むメリット

  • ウェブ自動化の基礎を理解:ブラウザ操作をPythonで自動化できます。
  • Seleniumの使い方を習得:さまざまなウェブ操作を簡単に実現できます。
  • 実践的なスキルを習得:自動化ツールの開発に役立つ知識を学べます。

この記事で学べること

  • ウェブ自動化の基本的な仕組み
  • Seleniumのセットアップと操作方法
  • ブラウザを操作する簡単なスクリプト例

1. 自動化スクリプトの基本とは?

1.1 自動化スクリプトとは?

自動化スクリプトは、特定のタスクをプログラムで自動化するためのコードです。以下のような用途に使用されます。

  • ウェブサイトのログイン処理
  • 定期的なデータ収集(スクレイピング)
  • 繰り返し操作の効率化

1.2 Seleniumとは?

Seleniumは、ウェブブラウザの操作を自動化するためのライブラリです。以下の特徴があります。

  • 主要なブラウザ(Chrome、Firefoxなど)に対応。
  • Pythonだけでなく、複数のプログラミング言語をサポート。
  • ウェブ要素の操作(クリック、入力、スクロール)が簡単。

2. seleniumの基本的な使い方

2.1 Seleniumのインストール

# Seleniumと必要なWebDriverのインストール
pip install selenium
# 例: ChromeDriverをインストールする場合
# https://sites.google.com/chromium.org/driver/

2.2 コード例:Google検索の自動化

# 必要なライブラリをインポート
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# ChromeDriverのパスを指定してブラウザを開く
driver = webdriver.Chrome(executable_path="path/to/chromedriver")

# Googleを開く
driver.get("https://www.google.com")

# 検索ボックスを見つける
search_box = driver.find_element(By.NAME, "q")

# 検索ワードを入力して検索実行
search_box.send_keys("Python Selenium")
search_box.send_keys(Keys.RETURN)

# 結果を一定時間表示
time.sleep(5)

# ブラウザを閉じる
driver.quit()
動作解説
  • webdriver.Chrome: Chromeブラウザを操作するドライバを起動します。
  • find_element: 指定した条件に合致するウェブ要素を取得します。
  • send_keys: テキストの入力やキー操作を実行します。
  • quit: 開いたブラウザを閉じます。

3. 実践例:フォーム入力と送信の自動化

3.1 サンプルコード

# フォームを自動で入力し、送信するスクリプト
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# ブラウザを開く
driver = webdriver.Chrome(executable_path="path/to/chromedriver")

# サンプルフォームを開く
driver.get("https://example.com/form")

# フォームフィールドを入力
name_field = driver.find_element(By.ID, "name")
email_field = driver.find_element(By.ID, "email")
message_field = driver.find_element(By.ID, "message")

name_field.send_keys("テストユーザー")
email_field.send_keys("test@example.com")
message_field.send_keys("自動化スクリプトのテストメッセージです。")

# 送信ボタンをクリック
submit_button = driver.find_element(By.ID, "submit")
submit_button.click()

# 結果を確認
time.sleep(5)

# ブラウザを閉じる
driver.quit()
動作解説
  • find_element: 各フォームフィールドを指定して操作します。
  • send_keys: 指定したテキストを入力します。
  • click: ボタンをクリックして送信操作を実行します。

4. 練習問題

以下の課題に挑戦してみましょう。

  1. 指定したウェブサイトのすべてのリンクを収集するスクリプトを作成してください。
  2. ログインフォームを自動操作してログイン後のページに遷移するスクリプトを作成してください。

5. 練習問題の解答と解説

問1の解答例

# ページのリンクを収集するスクリプト
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome(executable_path="path/to/chromedriver")
driver.get("https://example.com")

links = driver.find_elements(By.TAG_NAME, "a")
for link in links:
    print(link.get_attribute("href"))

driver.quit()

6. まとめ

本記事では、Seleniumを使ったウェブ自動化スクリプトの基礎を学びました。簡単なスクリプトから始めて、自分の作業を効率化するツールを作成してみましょう。