# 【コード付き】Selenium×Pythonの使い方！Chromeブラウザを自動操作してみようー！

> 当サイト【スタビジ】の本記事では、SeleniumをPythonで動かしてChromeブラウザ上で行う操作を自動化していきます。非常に簡単なコードを記述するだけで操作できるのでぜひ試してみてください！Seleniumを駆使すれば普段の単純労働が全自動になるかもしれませんよ！

- URL: https://toukei-lab.com/selenium-python
- 公開: 2022.11.29 / 更新: 2025.02.22
- サイト: スタビジ（https://toukei-lab.com）

:::talk{who="umatan"}
当サイト【スタビジ】の本記事では、SeleniumをPythonで動かしてChromeブラウザ上で行う操作を自動化していきます。非常に簡単なコードを記述するだけで操作できるのでぜひ試してみてください！Seleniumを駆使すれば普段の単純労働が全自動になるかもしれませんよ！
:::

こんにちは！

消費財メーカーでデジタルマーケター・データサイエンティストを経験後、現在は独立して働いているウマたん([@statistics1012](https://twitter.com/statistics1012?lang=ja))です！

Pythonを使うと非常に色々なことが出来ちゃいます。

その中でも<mark>Seleniumを使ったブラウザの自動化は非常に便利。</mark>

普段なんとなーく惰性でやっているルーティンワークはもしかしたらSeleniumを使えばぜーんぶ自動化できてしまうかもしれません。

:::talk{who="robotan"}
え・・・Pythonで自動化まで出来ちゃうの！？
:::

:::talk{who="umatan"}
Pythonはできることが非常に多いからちょっとずつ覚えていこうね！
:::

ぜひSeleniumの威力を知って色々な場面で使ってみましょう！

Pythonを基礎から学びたい方は当メディアが運営する[**スタアカ**](https://toukei-lab.com/achademy/)の以下のコースを是非チェックしてみてください！

:::box
**・[スタアカ「03.Python基礎」](https://toukei-lab.com/achademy/courses/python-beginner/)\
・[スタアカ「04.データ加工集計可視化」](https://toukei-lab.com/achademy/courses/data-preprocess/)**
:::

Pythonの操作方法からライブラリの使い方といった基本を動画を通して着実に学べます！

## Seleniumとは

![pc python](/wp-content/uploads/2019/08/Work-time-amico-min.png)

Seleniumは**ブラウザを操作するためのオートメーションツール**です。

この記事では、Pythonを用いて実装していきますが、JavaやRubyなど他のプログラミング言語でも実装することが可能。

Seleniumを使うことでWeb上で行う行動を自動化することができます。

<mark>検索やクリック、情報の抽出や画面キャプチャを撮って保存することなどが出来てしまうのです。</mark>

ぜひSeleniumを使いこなして普段使っている作業を自動化してみましょう！

## Selenium×Pythonでいくつか挙動を試してみよう！

![python](/wp-content/uploads/2019/08/Admin-amico-min.png)

それでは、そんなSeleniumについていくつか簡単な実装をおこなっていきたいと思います。

この記事では、先ほど取り上げた4つ

:::box
**・検索**\
**・クリック**\
**・情報取得**\
**・画面キャプチャ**
:::

を自動化してみたいと思います。

### 前準備（Windowsの場合）

意外とつまづきやすいのが、この前準備。

Seleniumを使ってブラウザを操作するためには**専用のドライバーをダウンロード**しなくてはいけません。（Windowsの場合）

今回はChromeブラウザを使用するので、Chromeを動かすためのChrome Driverをインストールしていくのですが**ご自身が使っているChromeのバージョンとダウンロードするChrome Driverのバージョンが一致するよう**にしましょう！

<mark>ここが一致しないと上手く動作しません。</mark>

Chrome Driverは以下のページからダウンロードしてください。

:::ref
[ChromeDriver – WebDriver for Chrome](https://sites.google.com/a/chromium.org/chromedriver/home)
:::

自分が使っているChromeブラウザのバージョンはブラウザ右上の3点リーダーメニューから以下のように確認することができます。

![Google Driver](/wp-content/uploads/2020/08/19412f4f93715b242ac6f12fbed4fd24.jpg) ![Google Driver](/wp-content/uploads/2020/08/f94374280d2abe993eb60ae731d648d1.jpg)

この場合使っているChromeブラウザのバージョンは84なので、Chrome Driverのバージョンも84を選ぶようにしましょう！

![Google Driver](/wp-content/uploads/2020/08/Chrome-Driver-min.jpg)

ダウンロードしたChrome Driverは任意のディレクトリフォルダに格納しておきましょう。

以下のコードでChomeブラウザを動かす準備が完了！

```python
from selenium import webdriver
import time

driver = webdriver.Chrome(executable_path='Chrome Driverの格納パス')
```

### 前準備（Mac）の場合

Macの方が簡易的に実装することが可能です。

Macの場合はChromedriverをインストールせず以下のように<mark>ターミナルに打つだけで実装することが可能</mark>です。

ターミナルにて

```python
brew cask install chromedriver
```

と入力してください。

既にchromedriverが入っていて再度インストールしたい場合は

```python
brew cask reinstall chromedriver
```

としましょう。

そして以下のようにしてあげれば問題ないです。

```python
from selenium import webdriver
import time

driver = webdriver.Chrome()
```

### Googleで検索をしてみよう！

それでは準備が整ったところでGoogle検索をおこなってみましょう！

以下の公式HPに載っているSample testのコードを実行するとGoogle検索ができますよ！

:::ref
[ChromeDriver – WebDriver for Chrome- getting started](http://chromedriver.chromium.org/getting-started)
:::

```python
#Googleのブラウザを開く
driver.get('https://www.google.com/')
time.sleep(2)

#スタビジを検索
search_box = driver.find_element_by_name('q')
search_box.send_keys('スタビジ')
search_box.submit()
time.sleep(2)
```

これで、Googleでスタビジと検索してくれます。

:::talk{who="robotan"}
わー！感動！
:::

### 検索結果をクリックしてみよう！

続いて検索結果をクリックしてみましょう！

ここでは、検索結果の1位をクリックしてみましょう！

```python
#検索結果1位をクリック
g = driver.find_elements_by_class_name("g")[0]
r = g.find_element_by_class_name("r")
r.click()
```

find_elements_by_class_name(‘g’)で、クラスが’g’の要素を引っ張ってきています。

引っ張ってきた要素の中の1つ目の要素のさらにrクラスにアクセスしています。

そしてr.click()で実際にクリックアクションを実行することができるんです！

要素を指定する上では、HTMLの要素を把握することが必要です。

Chromeでは、Ctrl+Shift+Iでディベロッパーツールを開くことができ、ディベロッパーツールのElementsから各要素を確認することができます。

![ディベロッパーツール](/wp-content/uploads/2019/06/developper-tool4.jpg)

<https://toukei-lab.com/developper-tool>

### Webサイト上の情報を取得してみよう！

続いてサイトの情報を取得してみましょう！

これは先ほどのクリック時におこなった方法で要素を指定して抽出していきます。

Web上の情報を取得する行為はWebスクレイピングと呼ばれ、非常に汎用性が高く色々なところで利用されていますが、**サイトやサービスによっては規制されていることも多いので注意しましょう！**

:::talk{who="umatan"}
実装前に、スクレイピングがOKなサイトかどうかをチェックしておこう！
:::

```python
#h2の要素を取得
for h2 in driver.find_elements_by_tag_name("h2"):
    print(h2.text)
```

ここでは、簡易的にH2のタグ要素を全て取得しました。

> 新着記事\
> データサイエンス\
> Python\
> おすすめサイト\
> Webマーケティング

スタビジでは、いくつかのカテゴリをトップページに並べており、それらが取得できましたね！

### 画面をスクリーンショットでキャプチャしてみよう！

最後に画面をスクリーンショットで保存する方法を紹介しておきます。

```python
#画面キャプチャ
driver.maximize_window()
driver.save_screenshot('スタビジ.png')

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

driver_maximize_window()で画面を最大化します。

そしてdriver.save_screenshot(‘○○.png’)でpng形式で画像を保存することができます。

この場合は、Pythonファイルと同ディレクトリに保存されますが、保存場所を明示的に示せばそこに保存することができます。

最後に全てのコードを1つにまとめて置いておきます。

```python title="Selenium_test.py"
from selenium import webdriver
import time

driver = webdriver.Chrome()

#Googleのブラウザを開く
driver.get('https://www.google.com/')
time.sleep(2)

#スタビジを検索
search_box = driver.find_element_by_name('q')
search_box.send_keys('スタビジ')
search_box.submit()
time.sleep(2)

#検索結果1位をクリック
g = driver.find_elements_by_class_name("g")[0]
r = g.find_element_by_class_name("r")
r.click()

#h2の要素を取得
for h2 in driver.find_elements_by_tag_name("h2"):
    print(h2.text)

#画面キャプチャ
driver.maximize_window()
driver.save_screenshot('スタビジ.png')

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

```

## Seleniumを勉強する方法

![Working late](/wp-content/uploads/2017/11/Working-late-amico.png)

SeleniumはUdemyの以下のコースで非常に優良で分かりやすくまとめていますので是非チェックしてみてください。

Seleniumを動かすところからある程度の実装までであれば、この動画を見れば問題ないです。

[**【実践】ビジネスケースとつなげてPythonで出来ること5つを学べる3日間集中コース**](https://www.udemy.com/course/python-can/?referralCode=2CBAD21040FF57199084)

[![Udemy python](/wp-content/uploads/2020/04/Udemy-me2-min-1024x554.jpg)](https://www.udemy.com/course/python-can/?referralCode=2CBAD21040FF57199084)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td>僕自身！今なら購入時に「NZWCLGF4BTZENY6E」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！</td>
</tr>
<tr>
<th>【時間】</th>
<td><span>3.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級～中級</span></td>
</tr>
</tbody>
</table>

Pythonで出来ることのうち以下の5つを網羅して学んでいきます。

:::box
**・データ集計・加工・描画**\
**・機械学習を使ったモデル構築**\
**・Webスクレイピング**\
**・APIの利用**\
**・Webアプリケーション開発**
:::

データ集計・加工・描画と機械学習モデル構築に関しては[Kaggle](/kaggle)というデータ分析コンペティションのWalmartの小売データを扱いながら学んでいきます。

[Webスクレイピング](/python-scraping)とAPI利用と[Webアプリケーション開発](/python-webapp)に関しては、楽天の在庫情報を取得してSlackに自動で通知するWebアプリケーションを作成して学んでいきます。

Pythonで何ができるのか知りたい！という方には一番はじめにまず受けていただきたいコースです！

Twitterアカウント([@statistics1012](https://twitter.com/statistics1012?lang=ja))にメンションいただければ1500円になる講師クーポンを発行いたします！

::button[このコースを見てみる]{href="https://www.udemy.com/course/python-can/?referralCode=2CBAD21040FF57199084" note="＼30日以内なら返金無料／"}

## 【応用】Selenium×PythonでGoogle検索の検索順位を取得するプログラムを作ってみよう！

Seleniumを勉強する講座を紹介してきましたが、この記事ではおまけとして<mark>**Selenium×PythonでGoogle検索の検索順位を取得する方法**</mark>を見てきます。

:::talk{who="umatan"}
めちゃくちゃ便利なプログラムで実際にマーケティングに使えるから実装してみよう！
:::

普段Google検索をした時に上位の記事から順番に見ていきますよね？

例えば、「化粧水　おすすめ」と調べた時に上位に出てくる記事はなんでしょう？

このタイミングで調べてみると以下のようになりました。

![Google　検索](/wp-content/uploads/2020/08/f7587a297c6befdf24d59a094b92a094.jpg)

※タイミングによって検索順位は変わるので必ずしも一致するとは限りません。

ちなみに<mark>Googleで検索順位を調べる時は、自分の検索履歴や位置情報に左右されてしまうのでプライベートブラウザで調べることをオススメ</mark>します。

Googleの検索で上位を取れば取るほど多くの人の目に触れるため、多くの企業がいかに検索上位を取るかにしのぎを削っています。

このGoogleで検索上位を取る活動をSEO（Search Engine Optimization）と呼びます。

SEOに関して詳しく知りたい方は以下の記事を見てみてください！

<https://toukei-lab.com/seo-study>

たとえば「化粧水　おすすめ」で自分の記事がどのくらいの順位につけているかを定点的に観測したいという需要があるでしょう。

しかし、それを手動でやるのは面倒です。

そこで、、、Seleniumの出番なのです！！！そんなプログラムは自動でやらせてしまいましょう！

```python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
import pandas as pd

options = Options()
# driver = webdriver.Chrome("{ご自身のディレクトリ}chromedriver.exe", options=options)
driver = webdriver.Chrome(options=options)

Keywords_list = pd.read_csv("Google_search_keyword.csv")
Keywords = Keywords_list["Keyword"]

df_list = []

for Keyword in Keywords:

    url = f"https://www.google.com/search?q={Keyword}"
    driver.get(url)
    time.sleep(2)

    article_list = driver.find_elements_by_class_name("tF2Cxc")

    url_list = []
    for article in article_list:
        url = article.find_element_by_tag_name("a").get_attribute("href")
        url_list.append(url)

    title_list = []
    text_num_list = []
    images_num_list = []
    h1_tag_list = []
    h1_tag_num_list = []
    h2_tag_list = []
    h2_tag_num_list = []
    h3_tag_list = []
    h3_tag_num_list = []
    h4_tag_list = []
    h4_tag_num_list = []
    h5_tag_list = []
    h5_tag_num_list = []


    for url in url_list:
        driver.get(url)
        time.sleep(2)

        title_list.append(driver.title)

        body = driver.find_element_by_tag_name("body").text
        text_num_list.append(len(body))

        images = driver.find_elements_by_tag_name("img")
        images_num_list.append(len(images))

        h1_list = driver.find_elements_by_tag_name("h1")
        h1_tag = []
        for h1 in h1_list:
            h1_tag.append(h1.text)
        h1_tag_list.append(h1_tag)

        h1_tag_num_list.append(len(h1_tag))

        h2_list = driver.find_elements_by_tag_name("h2")
        h2_tag = []
        for h2 in h2_list:
            h2_tag.append(h2.text)
        h2_tag_list.append(h2_tag)

        h2_tag_num_list.append(len(h2_tag))

        h3_list = driver.find_elements_by_tag_name("h3")
        h3_tag = []
        for h3 in h3_list:
            h3_tag.append(h3.text)
        h3_tag_list.append(h3_tag)

        h3_tag_num_list.append(len(h3_tag))

        h4_list = driver.find_elements_by_tag_name("h4")
        h4_tag = []
        for h4 in h4_list:
            h4_tag.append(h4.text)
        h4_tag_list.append(h4_tag)

        h4_tag_num_list.append(len(h4_tag))

        h5_list = driver.find_elements_by_tag_name("h5")
        h5_tag = []
        for h5 in h5_list:
            h5_tag.append(h5.text)
        h5_tag_list.append(h5_tag)

        h5_tag_num_list.append(len(h5_tag))

    df = pd.DataFrame([title_list, text_num_list, images_num_list, h1_tag_list, h1_tag_num_list,  h2_tag_list, h2_tag_num_list,  h3_tag_list, h3_tag_num_list,  h4_tag_list, h4_tag_num_list,  h5_tag_list, h5_tag_num_list]).T
    df.columns = ["title", "char_num", "images_num", "h1_list", "h1_num", "h2_list", "h2_num", "h3_list", "h3_num", "h4_list", "h4_num", "h5_list", "h5_num"]
    df["index"] = df.reset_index()["index"] + 1
    df["Keyword"] = Keyword
    df_list.append(df)

df_all = pd.concat(df_list)
    
driver.quit()

df_all.to_csv("Google_search_result.csv")
```

“Google_search_keyword.csv”のファイルは、調べたいキーワードを1行ずつ格納して上記のPythonファイルと同ディレクトリに置いておきましょう。

そうすることで<mark>Seleniumが勝手にそれぞれのキーワードの順位を調べてにいってくれる</mark>んです！

素晴らしいですね！

ちなみにseleniumのバージョン違いによってエラーを吐くことが多いので、それが煩わしいという人は「chromedriver_binary」というライブラリを使ってみてください！

:::related
<https://yuki.world/python-selenium-chromedriver-auto-update/>
:::

ちなみにGoogle検索の順位を取得するコードやSEOの概要を含めたマーケティング全般については以下のUdemy講座で解説しているので、もっと詳しく学びたい！という方は受講してみてください。

**[【入門から実践まで】Webマーケティングの全体像とデータ活用を短時間で学び実際にSEO集客ツールを作ってみよう！](https://www.udemy.com/course/web-marketing-for-beginner/?referralCode=2F55DB2D1A30C8F41E4F)**

[![Webマーケ講座](/wp-content/uploads/2021/02/Udemy-me4-min-1024x538.jpg)](https://www.udemy.com/course/web-marketing-for-beginner/?referralCode=2F55DB2D1A30C8F41E4F)

<table class="table">
<tbody>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【講師】</th>
<td>僕自身！今なら購入時に「NZWCLGF4BTZENY6E」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！</td>
</tr>
<tr>
<th>【時間】</th>
<td><span>2.5時間</span></td>
</tr>
<tr>
<th>【レベル】</th>
<td><span>初級</span></td>
</tr>
</tbody>
</table>

今なら購入時に「NZWCLGF4BTZENY6E」という講師クーポンコードを入れると90%オフ以上の割引価格になりますのでぜひご受講ください！

::button[このコースを見てみる]{href="https://www.udemy.com/course/web-marketing-for-beginner/?referralCode=2F55DB2D1A30C8F41E4F" note="＼30日以内なら返金無料／"}

## Selenium×Python　まとめ

ここまでご覧いただきありがとうございました！

Seleniumは非常に便利で面白い使い方が出来るのでぜひ色々と触ってみてください！

:::talk{who="robotan"}
こんなことがSelenium×Pythonで出来てしまうなんて・・・感動したよ！！
:::

:::talk{who="umatan"}
他にもできることはいくつかあるから是非Seleniumを触りながら色々試してみてね！
:::

要素の抽出はBeautifulsoupでも出来るのでBeautifulsoupと組みあわせて使ってみてください！

<https://toukei-lab.com/python-scraping>

また、Pythonでの自動化については以下の記事でまとめています！

<https://toukei-lab.com/python-automation>

この記事では、SeleniumをPythonで動かす方法について見てきましたが、Pythonは他にも色んな使い方ができます。

データ分析や生成AIの実装などPythonで出来ることを網羅的に体験したい方は当メディアが運営する[**スタアカ**](https://toukei-lab.com/achademy/)をチェックしてみて下さい。

[GPTモデル](/gpt)をはじめとした[大規模言語モデル](/llm)の理論やPythonでの扱い方などを幅広く学んでいきます！

![スタアカ（スタビジアカデミー）のトップページ](/wp-content/uploads/2026/10/achademy-top.jpg)

<table class="table">
<tbody>
<tr>
<th>【価格】</th>
<td>ライトプラン：1,280円/月（全コースが受講し放題）<br>
プレミアムプラン：129,800円（通常149,800円・買い切り）</td>
</tr>
<tr>
<th>【オススメ度】</th>
<td><span class="stars" role="img" aria-label="5点中5点" data-value="5"></span></td>
</tr>
<tr>
<th>【サポート体制】</th>
<td><span class="stars" role="img" aria-label="5点中4点" data-value="4"></span></td>
</tr>
<tr>
<th>【受講形式】</th>
<td>オンライン形式</td>
</tr>
<tr>
<th>【学習範囲】</th>
<td>統計学・機械学習・ディープラーニングを網羅的に学ぶ<br>
生成AI（LLM・RAG・プロンプトエンジニアリング）を学ぶ<br>
SQLとPythonを組み合わせて実データを使った様々なワークを行う<br>
実践的なビジネスフレームワークを学ぶ<br>
マーケティングの実行プラン策定</td>
</tr>
</tbody>
</table>

:::box
**・BigQuery上でSQL、Google Colab上でPythonを使い野球の投球分析**\
**・世界最大手小売企業のウォルマートの実データを用いた需要予測**\
**・ビジネス・マーケティングの基礎を学んで実際の企業を題材にしたマーケティングプランの策定**\
**・生成AIのAPIを使ってチャットボットやAIエージェントを作る**
:::

::button[スタアカの受講はこちら]{href="https://toukei-lab.com/achademy/" note="＼今すぐ試す／"}

Pythonの勉強は以下の記事にまとめていますので是非チェックしてみてください！

<https://toukei-lab.com/python-learn>

イラスト出典：**[Illustration by Stories by Freepik](https://stories.freepik.com/)**