はじめに|Seleniumで何ができるの?
こんにちは!
この記事では、Pythonの「Selenium(セレニウム)」というライブラリについて、初心者向けにわかりやすく紹介していきます。
突然ですが、みなさんは「毎日同じサイトを開いて情報をチェックしたり、ボタンをクリックして検索したり…」という作業をしていませんか?
実はこういう“人間がブラウザでやっている操作”って、PythonとSeleniumを使えば自動でやらせることができるんです!
Seleniumはもともと「Webアプリの動作テスト」を自動化するために作られたツールなんですが、今では**Webスクレイピング(情報の自動収集)**にもよく使われています。
とくに、JavaScriptで動的に表示されるページ(たとえば、ボタンを押したら内容が切り替わるページなど)は、requestsやBeautifulSoupだけではうまく取れないことがあります。
そういうときに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を読むのが得意) |
| Selenium | JavaScriptで動くページの操作(自動操作が得意) |
つまり、動きのあるページ(JavaScriptが使われている)を扱いたいなら、Seleniumが最適!
逆に、静的なページを対象にしたいなら、BeautifulSoupの方が軽くて速いのでおすすめです。

次は、**Seleniumを実際に使う準備(インストールやセットアップ)**について説明していきます。
「ちょっと難しそう…」と思っても大丈夫! わかりやすく解説していきますので、一緒に進めていきましょう✨
3. Seleniumの準備|インストールと基本セットアップ
Seleniumを使ってブラウザを操作するには、少しだけ準備が必要です。
といっても、やることはたったの2つだけ!
✅ 準備ステップはこれだけ!
- Seleniumライブラリをインストールする
- WebDriver(ウェブドライバー)を用意する
それぞれ、順番に見ていきましょう!
① Seleniumをインストールしよう
Pythonでは、ライブラリのインストールはおなじみの pip コマンドを使います。
ターミナルやコマンドプロンプトを開いて、次のコマンドを入力しましょう:
pip install selenium
これで、Selenium本体はインストール完了です!
② WebDriverをダウンロードしよう(Chrome編)
Seleniumは、実際のブラウザを“リモコン操作”するために、「WebDriver」というソフトを使います。
たとえばGoogle Chromeを操作したいときは、ChromeDriverというものが必要になります。
🔽 ChromeDriverのダウンロード手順
- 以下の公式ページにアクセスします:
https://sites.google.com/chromium.org/driver/ - 自分のChromeブラウザのバージョンに合ったものをクリックします
※ バージョン確認方法:Chromeで「chrome://settings/help」にアクセスすると表示されます。 - ダウンロード後、zipファイルを解凍して、中にある
chromedriver.exeを取り出します。 - 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 を使います(element → elements にsをつけるだけ)
5. Webスクレイピングの実践例|テキストやリンクの抽出
ここでは、実際にSeleniumを使ってWebページから情報を取り出す(=スクレイピング)方法を紹介します!
今回は、簡単な検索結果からタイトルやURLを自動で取得するところまでやってみましょう✨
🔍 やってみること:検索結果から情報を取得!
今回の流れはこんな感じです👇
- Googleで「Python Selenium」と検索
- 表示された検索結果から、タイトルとリンクを抽出
- いくつか表示させてみる
💻 コード例:検索結果からタイトルと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で作れるなんて、ちょっとワクワクしませんか?
この機会に、ぜひ自分だけの「自動化ツール作り」にチャレンジしてみてくださいね!🚀
次におすすめの記事はこちら👇
▶ あわせて読みたい
- Pythonでできる自動化10選|初心者向けにやさしく解説
- 【初心者向け】Webスクレイピングの基本|PythonでrequestsとBeautifulSoupを使う方法
- Python初心者でもできる!毎日の作業を自動化する簡単スクリプト3選
よくある質問(Q&A)
- QSeleniumって無料で使えるの?
- A
はい、Seleniumは完全に無料で使えるオープンソースのツールです!
商用・個人どちらでも使ってOKですが、使うサイトの規約は必ずチェックしましょう。
- QChromeDriverのバージョンが合わないとどうなる?
- A
エラーが出てブラウザが起動しません。
ChromeDriverは「Chromeのバージョン」と一致していないとうまく動かないので、必ずバージョンを確認してからダウンロードしましょう。
- QSeleniumとBeautifulSoupはどっちを使えばいいの?
- A
ページの構造によります!
- 静的なHTML(JavaScriptが少ない) →
BeautifulSoup - 動的なページ(ボタンクリック後に表示されるなど) →
Selenium
両方を組み合わせて使うケースも多いですよ!
- 静的なHTML(JavaScriptが少ない) →







※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。
※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。