スポンサーリンク

【初心者向け】SeleniumでWebスクレイピングする方法|ブラウザ操作も自動化できる!

自動化スクリプト
  1. はじめに|Seleniumで何ができるの?
    1. 🔍 Seleniumでできること一例
  2. 2. Seleniumとは?|Webブラウザを自動操作できるライブラリ
    1. 🔧 Seleniumは「ブラウザを自動操作できるロボット」
    2. 🧪 本来はテスト用、でもスクレイピングにも超便利!
    3. 💡 BeautifulSoupとの違いは?
  3. 3. Seleniumの準備|インストールと基本セットアップ
    1. ✅ 準備ステップはこれだけ!
    2. ① Seleniumをインストールしよう
    3. ② WebDriverをダウンロードしよう(Chrome編)
      1. 🔽 ChromeDriverのダウンロード手順
    4. 🧠 補足:環境変数にパスを通す方法
    5. 🚀 試しにChromeを起動してみよう!
  4. 4. 実践!ブラウザを開いてページを操作する手順
    1. 🔹 ステップ1:ブラウザを起動してページを開く
    2. 🔹 ステップ2:ページタイトルを取得してみよう
    3. 🔹 ステップ3:要素を見つけて操作してみよう
    4. ✅ よく使う要素の取得方法まとめ
  5. 5. Webスクレイピングの実践例|テキストやリンクの抽出
    1. 🔍 やってみること:検索結果から情報を取得!
    2. 💻 コード例:検索結果からタイトルとURLを抽出
    3. 📝 出力例(実行結果)
  6. 6. より効率的に!自動ログイン・ページ遷移も可能
    1. 🔐 ログイン操作も自動化できる!
      1. 💻 ログイン処理のサンプルコード(例:仮のログインページ)
    2. 🔁 複数ページを順番にスクレイピングする
      1. 🔁 複数ページを巡回する例
    3. 🧠 ワンポイント:待機は WebDriverWait が便利!
  7. 7. スクレイピング時の注意点とマナー
    1. 🚨 スクレイピングで気をつけるべきポイント
      1. 1. 利用規約は必ずチェック!
      2. 2. robots.txt を確認しよう
      3. 3. アクセス頻度は控えめに
      4. 4. ログイン情報の取り扱いに注意
      5. 5. 公開・商用利用は要注意!
  8. 8. まとめ|Seleniumでできることを活かそう!
    1. 🧩 Seleniumでできることまとめ
    2. 🛠 BeautifulSoupとの使い分けも意識しよう
    3. 🧭 Seleniumは「業務効率化」の第一歩!
    4. ▶ あわせて読みたい
  9. よくある質問(Q&A)
    1. 関連投稿:

はじめに|Seleniumで何ができるの?

こんにちは!
この記事では、Pythonの「Selenium(セレニウム)」というライブラリについて、初心者向けにわかりやすく紹介していきます。

突然ですが、みなさんは「毎日同じサイトを開いて情報をチェックしたり、ボタンをクリックして検索したり…」という作業をしていませんか?
実はこういう“人間がブラウザでやっている操作”って、PythonとSeleniumを使えば自動でやらせることができるんです!

Seleniumはもともと「Webアプリの動作テスト」を自動化するために作られたツールなんですが、今では**Webスクレイピング(情報の自動収集)**にもよく使われています。
とくに、JavaScriptで動的に表示されるページ(たとえば、ボタンを押したら内容が切り替わるページなど)は、requestsBeautifulSoupだけではうまく取れないことがあります。
そういうときにSeleniumが大活躍するんです!


🔍 Seleniumでできること一例

  • 指定したURLを開く
  • 検索フォームに文字を入力する
  • ボタンをクリックする
  • 表示されたページの情報を読み取る
  • ログイン処理を自動化する
  • 複数ページを順番にスクレイピングする

「人がブラウザで操作していることを、全部自動でやってくれる」と考えるとわかりやすいですね😊


このあとの記事では、Seleniumの使い方を順番に解説していきます!
「スクレイピングって難しそう…」と思っている人でも安心してください。
コピペできるコード例も用意しているので、ぜひ一緒に動かしてみましょう!

それでは、Seleniumの基本から始めていきましょう!




2. Seleniumとは?|Webブラウザを自動操作できるライブラリ

さて、ここからはSeleniumがどんなツールなのか、もう少し詳しく見ていきましょう!


🔧 Seleniumは「ブラウザを自動操作できるロボット」

Selenium(セレニウム)は、WebブラウザをPythonで操作できるライブラリです。
「Google Chrome」や「Firefox」など、ふだん私たちが使っているブラウザを、プログラムの力で自動的に開いたり、クリックしたり、文字を入力したりすることができます。

たとえば、次のようなことができます👇

  • Chromeを自動で立ち上げて、特定のページを開く
  • 検索フォームにキーワードを入力して検索する
  • ボタンやリンクをクリックする
  • ページの中の情報(文字や画像など)を取得する

まるで“見えない手”が代わりに操作してくれている感じですね😊


🧪 本来はテスト用、でもスクレイピングにも超便利!

もともとSeleniumは、Webアプリのテストを自動化するために作られました。
たとえば、Webサービスを作っている会社が「このボタンを押すとちゃんと次のページに移動できるかな?」というテストを、毎回手作業でやるのは大変ですよね。

そんなときに、Seleniumを使えば、クリックや入力を自動で繰り返すテストが一瞬でできるんです。

でも最近では、この「人間の代わりに操作できる」という特徴を活かして、情報収集(スクレイピング)にも使われることが増えてきました!


💡 BeautifulSoupとの違いは?

Pythonでよく使われるスクレイピングツールには、BeautifulSoup(ビューティフルスープ)もありますよね。
Seleniumとどう違うの?と疑問に思うかもしれません。

簡単にいうと…

ライブラリ得意なこと
BeautifulSoup静的なHTMLの解析(HTMLを読むのが得意)
SeleniumJavaScriptで動くページの操作(自動操作が得意)

つまり、動きのあるページ(JavaScriptが使われている)を扱いたいなら、Seleniumが最適!
逆に、静的なページを対象にしたいなら、BeautifulSoupの方が軽くて速いのでおすすめです。

次は、**Seleniumを実際に使う準備(インストールやセットアップ)**について説明していきます。
「ちょっと難しそう…」と思っても大丈夫! わかりやすく解説していきますので、一緒に進めていきましょう✨




3. Seleniumの準備|インストールと基本セットアップ

Seleniumを使ってブラウザを操作するには、少しだけ準備が必要です。
といっても、やることはたったの2つだけ!


✅ 準備ステップはこれだけ!

  1. Seleniumライブラリをインストールする
  2. WebDriver(ウェブドライバー)を用意する

それぞれ、順番に見ていきましょう!


① Seleniumをインストールしよう

Pythonでは、ライブラリのインストールはおなじみの pip コマンドを使います。

ターミナルやコマンドプロンプトを開いて、次のコマンドを入力しましょう:

pip install selenium

これで、Selenium本体はインストール完了です!


② WebDriverをダウンロードしよう(Chrome編)

Seleniumは、実際のブラウザを“リモコン操作”するために、「WebDriver」というソフトを使います。

たとえばGoogle Chromeを操作したいときは、ChromeDriverというものが必要になります。

🔽 ChromeDriverのダウンロード手順

  1. 以下の公式ページにアクセスします:
    https://sites.google.com/chromium.org/driver/
  2. 自分のChromeブラウザのバージョンに合ったものをクリックします
    ※ バージョン確認方法:Chromeで「chrome://settings/help」にアクセスすると表示されます。
  3. ダウンロード後、zipファイルを解凍して、中にある chromedriver.exe を取り出します。
  4. Pythonファイルと同じフォルダに入れておけばOK!

🧠 補足:環境変数にパスを通す方法

もし「どこに置いても動くようにしたい!」という人は、chromedriver を環境変数に登録すると便利です。
ただ、初心者のうちは「Pythonファイルと同じフォルダに置く」で十分ですよ😊


🚀 試しにChromeを起動してみよう!

ここまで準備できたら、Pythonでブラウザを開くコードを試してみましょう:

from selenium import webdriver

driver = webdriver.Chrome() # Chromeを起動
driver.get("https://www.google.com") # Googleを開く

このコードを実行すると、なんと自動でChromeが立ち上がって、Googleのページが開きます!✨
これだけで「Seleniumの第一歩」は完了です!




4. 実践!ブラウザを開いてページを操作する手順

ここからは、いよいよSeleniumを使ってブラウザを実際に操作してみましょう!
「検索フォームに文字を入力して検索ボタンを押す」といった基本の動きを、Pythonコードで再現していきます!


🔹 ステップ1:ブラウザを起動してページを開く

まずは、SeleniumでChromeブラウザを開いて、特定のURLを表示してみましょう。

from selenium import webdriver

# Chromeを起動する
driver = webdriver.Chrome()

# 指定したURLを開く(今回はGoogle)
driver.get("https://www.google.com")

このコードを実行すると、Googleのトップページが自動で開きます!
「おおっ!動いた!」って思わず声が出ちゃいますよね😊


🔹 ステップ2:ページタイトルを取得してみよう

開いたページのタイトル(=タブに表示されるタイトル)を取得することもできます。

print(driver.title)  # => "Google"

ブラウザ操作だけでなく、ページの情報をPythonで読み取ることができるのも、Seleniumのすごいところ!


🔹 ステップ3:要素を見つけて操作してみよう

次は、検索ボックスに文字を入力して、検索ボタンをクリックするという動作を自動化してみましょう。

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome()
driver.get("https://www.google.com")

# 検索ボックスを探す
search_box = driver.find_element(By.NAME, "q")

# キーワードを入力してEnterキーを押す
search_box.send_keys("Python Selenium")
search_box.send_keys(Keys.RETURN)

# 少し待ってからページタイトルを表示
time.sleep(2)
print(driver.title) # => "Python Selenium - Google 検索"

このコードで、なんと「Googleで検索して結果ページを見る」ところまで自動化できます!
もうこれだけで、**立派な“自動ブラウザ操作”**が完成です✨


✅ よく使う要素の取得方法まとめ

方法説明
find_element(By.ID, "id名")IDで要素を探す
find_element(By.NAME, "name名")name属性で探す
find_element(By.CLASS_NAME, "クラス名")クラス名で探す
find_element(By.TAG_NAME, "タグ名")タグ名で探す(例:"a"
find_element(By.LINK_TEXT, "リンクの文字")リンクテキストで探す
find_element(By.CSS_SELECTOR, "CSSセレクタ")CSSセレクタで指定
find_element(By.XPATH, "XPath")XPathで要素指定

※ 複数の要素を取りたい場合は find_elements を使います(elementelements にsをつけるだけ)




5. Webスクレイピングの実践例|テキストやリンクの抽出

ここでは、実際にSeleniumを使ってWebページから情報を取り出す(=スクレイピング)方法を紹介します!
今回は、簡単な検索結果からタイトルやURLを自動で取得する
ところまでやってみましょう✨


🔍 やってみること:検索結果から情報を取得!

今回の流れはこんな感じです👇

  1. Googleで「Python Selenium」と検索
  2. 表示された検索結果から、タイトルとリンクを抽出
  3. いくつか表示させてみる

💻 コード例:検索結果からタイトルとURLを抽出

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time

# ブラウザ起動
driver = webdriver.Chrome()
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(2)

# 検索結果のリンク(タイトルとURL)を取得
results = driver.find_elements(By.CSS_SELECTOR, "div.yuRUbf a")

for i, result in enumerate(results[:5]): # 上位5件だけ表示
print(f"{i+1}. タイトル:{result.text}")
print(f" URL:{result.get_attribute('href')}\n")

# ブラウザを閉じる
driver.quit()

📝 出力例(実行結果)

1. タイトル:Selenium with Python
URL:https://www.selenium.dev/documentation/webdriver/

2. タイトル:Selenium - PyPI
URL:https://pypi.org/project/selenium/

...

これだけで、自動で検索 → 情報を取得 → 表示まで一気に完了!
しかもURLまで取れるので、後から保存したり、別の処理につなげたりもできますね😊

ページによっては、表示に少し時間がかかることがあります。
そのため、time.sleep(秒数) のように少し待ってから情報を取るのがコツです。

もっと本格的にやるなら、WebDriverWait を使った「スマート待機」もできます(次章で少し触れます!)




6. より効率的に!自動ログイン・ページ遷移も可能

ここまでで、Seleniumを使って「ページを開いて検索結果から情報を取る」ことができるようになりました。
でも実は、Seleniumのすごさは**「もっと人間っぽい操作」も自動化できる**ところにあります!

この章では、ログインフォームへの入力や複数ページのスクレイピングなど、実務でもよく使われる操作を紹介します。


🔐 ログイン操作も自動化できる!

多くのWebサービスでは、まずログインしないとデータにアクセスできませんよね?
Seleniumなら、IDとパスワードの入力 → ログインボタンのクリックもバッチリ自動で行えます!


💻 ログイン処理のサンプルコード(例:仮のログインページ)

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()
driver.get("https://example.com/login") # 実際のログインURLに変更!

# ユーザー名とパスワードを入力
driver.find_element(By.NAME, "username").send_keys("your_username")
driver.find_element(By.NAME, "password").send_keys("your_password")

# ログインボタンをクリック
driver.find_element(By.ID, "login-button").click()

# 少し待ってから次の処理へ
time.sleep(3)

print("ログイン完了!")

※ 実際に使うときは、サイトの構造(input要素のname属性やidなど)に合わせて調整が必要です!


🔁 複数ページを順番にスクレイピングする

Seleniumでは「ページを移動して、また情報を取る」というページ遷移+ループ処理も簡単にできます。


🔁 複数ページを巡回する例

from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome()

for page in range(1, 4): # 1ページ目〜3ページ目
url = f"https://example.com/list?page={page}"
driver.get(url)

time.sleep(2)

items = driver.find_elements(By.CLASS_NAME, "item-title")
print(f"--- ページ {page} ---")
for item in items:
print(item.text)

driver.quit()

このように、ページ番号を変えながらURLを自動で切り替えることで、何十ページでも連続してデータを取得できます!


🧠 ワンポイント:待機は WebDriverWait が便利!

先ほどは time.sleep() を使いましたが、もう少しスマートに待つ方法があります。
たとえば「この要素が現れるまで待つ」という書き方ができるのが、WebDriverWaitです。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 特定の要素が表示されるまで最大10秒待つ
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.ID, "target-id"))
)

ページの読み込みが不安定なときには、とっても頼れる存在です✨

このように、ログインやページ遷移をうまく使えば、実用的なスクレイピングツールを自作することも可能です!




7. スクレイピング時の注意点とマナー

Seleniumを使えば、Webページの操作やデータ取得がとっても簡単にできるようになります。
でもちょっと待ってください!
スクレイピングには守るべきマナーとルールがあるのを忘れないでくださいね。


🚨 スクレイピングで気をつけるべきポイント

1. 利用規約は必ずチェック!

まず大前提として、**スクレイピングするサイトの「利用規約」や「禁止事項」**を必ず確認しましょう。

  • 「自動取得禁止」や「botアクセス禁止」と書かれている場合、そのサイトへのスクレイピングはNGです。
  • 法律に違反しなくても、規約違反=アカウント停止やアクセス禁止になるリスクがあります。

✅ ポイント:必ず対象サイトの「利用規約」「terms of service」を読みましょう!


2. robots.txt を確認しよう

ほとんどのサイトには robots.txt というファイルがあり、**「検索エンジンやbotがアクセスしてもいいページ」**が定義されています。

たとえば、次のURLにアクセスしてみてください:

https://example.com/robots.txt

この中に「Disallow: /private/」のような記述があるページには、botでアクセスしないのがマナーです。


3. アクセス頻度は控えめに

Seleniumでスクレイピングする場合、高速で何度もアクセスするのは絶対にNG!

  • アクセスが多すぎると、サーバーに負担がかかる
  • IPアドレスがブロックされることもある

💡 対策:処理の合間に time.sleep(1~3秒) を入れて、適度に間隔を空けるのが鉄則!


4. ログイン情報の取り扱いに注意

ログイン自動化のときにIDやパスワードをコードにベタ書きするのは危険です。

  • .envファイルなどで管理する
  • GitHubなどにアップロードしないように注意!

5. 公開・商用利用は要注意!

スクレイピングで取得した情報をそのまま公開したり、商用で使ったりするのはとくに注意が必要です。

  • 著作権や肖像権に触れる場合があります
  • 法律的なトラブルになることも…

📌 個人学習や業務効率化の範囲にとどめて使うのが安心です。

スクレイピングはとても便利な技術ですが、相手のサーバーがあってこそ動くものです。

「自分がそのサービスを提供していたらどう感じるか?」
そう考えながら、マナーを守って気持ちよく使うようにしましょう😊




8. まとめ|Seleniumでできることを活かそう!

ここまで、PythonのSeleniumを使ったWebスクレイピングやブラウザ自動操作の方法を紹介してきました。
「Seleniumって思ってたより簡単かも!」と感じていただけたら嬉しいです😊


🧩 Seleniumでできることまとめ

おさらいもかねて、Seleniumでできることをざっとまとめてみましょう!

✅ ページの表示
✅ 入力フォームへの文字入力
✅ ボタンのクリック
✅ テキストやリンクの取得
✅ ログイン処理の自動化
✅ 複数ページの巡回スクレイピング
✅ 表示を待ってから処理するスマート待機

つまり…人間がマウスやキーボードでやっていることを、Pythonで全部再現できる! というわけです!


🛠 BeautifulSoupとの使い分けも意識しよう

  • Selenium: JavaScriptで動くページ・人間の操作が必要なページ向き
  • BeautifulSoup: 静的HTMLや軽いデータ取得向き

必要に応じてうまく使い分けることで、スクレイピングの幅がグッと広がります!


🧭 Seleniumは「業務効率化」の第一歩!

今回のように、毎回同じ手作業を自動化するだけでも、時間と手間を大幅に減らすことができます。

「毎日このページからデータ取って表にまとめてる…」
「ログインして情報見て、コピーして…」
そんな作業を自動でやってくれるロボットをPythonで作れるなんて、ちょっとワクワクしませんか?


この機会に、ぜひ自分だけの「自動化ツール作り」にチャレンジしてみてくださいね!🚀


次におすすめの記事はこちら👇

▶ あわせて読みたい


よくある質問(Q&A)

Q
Seleniumって無料で使えるの?
A

はい、Seleniumは完全に無料で使えるオープンソースのツールです!
商用・個人どちらでも使ってOKですが、使うサイトの規約は必ずチェックしましょう。

Q
ChromeDriverのバージョンが合わないとどうなる?
A

エラーが出てブラウザが起動しません。
ChromeDriverは「Chromeのバージョン」と一致していないとうまく動かないので、必ずバージョンを確認してからダウンロードしましょう。

Q
SeleniumとBeautifulSoupはどっちを使えばいいの?
A

ページの構造によります!

  • 静的なHTML(JavaScriptが少ない) → BeautifulSoup
  • 動的なページ(ボタンクリック後に表示されるなど) → Selenium

両方を組み合わせて使うケースも多いですよ!

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク