【Selenium】BraveブラウザでSeleniumを実行する方法！Chrome/Edgeプロファイル問題からの移行術

# 【Selenium】BraveブラウザでSeleniumを実行する方法！Chrome/Edgeプロファイル問題からの移行術

前回の記事「【Selenium】最新Chrome/Edgeでユーザープロファイルが使えない？「DevToolsActivePort」エラーの解決法」では、Chrome/Edgeの最新版でプロファイル問題が発生する件について解説しました。

しかし、解決方法を試してもまだ不安定だったり、そもそもプライバシーを重視したい方には、**Braveブラウザ**でSeleniumを実行するという選択肢があります。

BraveはChromiumベースでありながら、広告ブロック機能やプライバシー保護が標準搭載されており、Seleniumでの自動化においても多くのメリットがあります。今回は、BraveでSeleniumを実行する具体的な方法をご紹介します！

## なぜBraveブラウザなのか？Seleniumでの3つのメリット

### 1. 標準で広告ブロック機能を搭載
Seleniumでウェブサイトを操作する際、ポップアップ広告や侵入的な広告要素が自動化の妨げになることがよくあります。Braveは標準で強力な広告ブロック機能を持っているため、これらの問題を大幅に軽減できます。

### 2. プライバシー保護でトラッキング回避
Braveはトラッカーやフィンガープリンティングを自動的にブロックするため、Seleniumでの操作がより検出されにくくなります。ウェブサイトによっては自動化を検知してブロックしてくることがありますが、Braveの保護機能によってこのリスクを下げることができます。

### 3. Chrome/Edgeより安定したプロファイル管理
前回の記事で説明したChrome/Edgeのプロファイル問題ですが、Braveでは比較的安定してプロファイルを使用できます。また、ChromiumベースなのでChromeDriverをそのまま使用できるのも大きな利点です。

## BraveでSeleniumを実行する基本設定

### Braveブラウザのインストール

まず、[Brave公式サイト](https://brave.com/ja/)からBraveブラウザをダウンロード・インストールします。

### Python環境の準備

必要なライブラリをインストールします：

```bash
pip install selenium webdriver-manager
```

### Braveのパス自動検出機能付きPythonコード

以下のコードは、システム内のBraveブラウザを自動検出し、見つからない場合はChromeにフォールバックする仕組みになっています：

```python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import os

# BraveのChromeオプション設定
options = Options()

# Windows用Braveブラウザのパス自動検出
possible_paths = [
    r"C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe",
    r"C:\Program Files (x86)\BraveSoftware\Brave-Browser\Application\brave.exe",
    r"C:\Users\{}\AppData\Local\BraveSoftware\Brave-Browser\Application\brave.exe".format(os.getenv('USERNAME')),
]

brave_path = None
for path in possible_paths:
    if os.path.exists(path):
        brave_path = path
        print(f"Braveブラウザが見つかりました: {path}")
        break

if not brave_path:
    print("Braveブラウザが見つかりません。Chromeで実行を続行します...")
else:
    # Braveブラウザのパスを設定
    options.binary_location = brave_path

# 基本的なオプション設定
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
options.add_argument('--lang=ja')

# 自動化検知を避けるオプション
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)

# プロファイル設定（Brave用）
if brave_path:
    profile_path = r'C:\Users\{}\AppData\Local\BraveSoftware\Brave-Browser\SeleniumProfile'.format(os.getenv('USERNAME'))
    print(f"Brave専用プロファイルを使用: {profile_path}")
else:
    profile_path = r'C:\Users\{}\AppData\Local\Google\Chrome\SeleniumProfile'.format(os.getenv('USERNAME'))
    print(f"Chrome用プロファイルを使用: {profile_path}")

options.add_argument(f'--user-data-dir={profile_path}')

# WebDriverの起動
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)

# webdriverプロパティを隠してより検出されにくくする
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")

print("Braveブラウザ（またはChrome）でスクリプト開始")

# テスト用のページアクセス
driver.get("https://www.google.com")
input("何かキーを押すとブラウザを閉じます...")

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

## プロファイル設定のポイント

### Brave専用プロファイルフォルダの作成

BraveでSeleniumを使用する場合、専用のプロファイルフォルダを作成することをお勧めします：

1. **フォルダ作成**：`C:\Users\あなたのユーザー名\AppData\Local\BraveSoftware\Brave-Browser\SeleniumProfile`
2. **既存プロファイルのコピー**（必要に応じて）：普段使っているBraveのプロファイルからログイン情報などを引き継ぎたい場合は、`Default`フォルダの内容をコピー

### プロファイル引き継ぎの手順

ログイン状態などを引き継ぎたい場合：

```bash
# コマンドプロンプトでBraveを起動してプロファイルを確認
brave.exe --user-data-dir="C:\Users\あなたのユーザー名\AppData\Local\BraveSoftware\Brave-Browser\SeleniumProfile" --profile-directory="Default"
```

このコマンドでBraveを起動し、必要なサイトにログインしておくと、Seleniumでも同じログイン状態を利用できます。

## 実用的な機能追加

### 人間らしい操作の実装

Braveでより自然な自動化を行うための関数例：

```python
from selenium.webdriver.common.action_chains import ActionChains
import time
import random

def human_like_click(driver, element):
    """人間らしいクリック動作を実行"""
    try:
        # 要素まで移動してからランダムな待機
        ActionChains(driver).move_to_element(element).pause(random.uniform(0.3, 0.8)).perform()
        
        # ブラウザを前面に保持
        driver.execute_script("window.focus();")
        
        # ランダムな待機時間
        time.sleep(random.uniform(0.2, 0.5))
        
        # クリック実行
        element.click()
        return True
        
    except Exception as e:
        print(f"クリックエラー: {e}")
        return False

def smart_wait(driver, timeout=10):
    """ページの読み込み完了まで待機"""
    try:
        WebDriverWait(driver, timeout).until(
            lambda d: d.execute_script("return document.readyState") == "complete"
        )
        print("ページの読み込みが完了しました")
    except Exception as e:
        print(f"待機エラー: {e}")
```

## トラブルシューティング

### よくある問題と解決法

**1. Braveが見つからないエラー**
```
Braveブラウザが見つかりません。以下の場所を確認してください:
- C:\Program Files\BraveSoftware\Brave-Browser\Application\brave.exe
- C:\Program Files (x86)\BraveSoftware\Brave-Browser\Application\brave.exe
```

→ Braveのインストール場所を確認し、パスを手動で指定してください。

**2. プロファイルアクセスエラー**
```
selenium.common.exceptions.SessionNotCreatedException
```

→ Braveブラウザが手動で起動していないか確認し、すべてのBraveプロセスを終了してからスクリプトを実行してください。

**3. ChromeDriverの互換性問題**

BraveはChromiumベースのため、ChromeDriverを使用しますが、バージョンの不一致が起こることがあります。`webdriver-manager`を使用することで自動的に適切なバージョンがダウンロードされます。

## まとめ

BraveブラウザでSeleniumを実行することで、以下のメリットが得られます：

- **広告ブロック**による安定した自動化
- **プライバシー保護**機能による検出回避
- **Chrome/Edge問題の回避**とより安定したプロファイル管理

特に、前回記事で紹介したChrome/Edgeのプロファイル問題に悩まされている方や、プライバシーを重視した自動化を行いたい方には、Braveは優れた選択肢となります。

Chromeと同じSeleniumコードがほぼそのまま使えるため、移行も簡単です。ぜひ一度試してみてください！

---

**注意事項**：
- 今回の情報は2025年6月現在のものです
- ブラウザのアップデートにより今後挙動が変わる可能性があります
- 自動化を行う際は各サイトの利用規約を必ず確認してください

#Brave #Selenium #Python #自動化 #Chrome #プライバシー![スクリーンショット 2025-06-16 122825.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2433285/c4a0fba1-9af1-4392-aa73-04c57f2c0906.jpeg)