🎯 はじめに
最近「Python で Web スクレイピングをしてみたい」という初心者向け動画や記事はたくさんありますが、Selenium の進化が早すぎて、情報が古いままになっているケースも多いです。
今回は、以下の YouTube 動画をベースに実際に手を動かしてみたところ、環境の違いやSeleniumのバージョン差によっていろいろハマったので、最新版のSelenium 4.6〜4.11 でどう動かすのが正解なのかを整理してみました。
⚙ 実行環境
| 項目 | 内容 |
|---|---|
| OS | macOS 15.3.2(24D81) |
| CPU | Apple Silicon(arm64) |
| Python | 3.12(Anaconda) |
| Chrome | 135.0.7049.42(Official Build)(arm64) |
| ChromeDriver | 136.0.7103.17 |
| Selenium | 4.11.2 |
💡 ハマったポイントと対策まとめ
- ❌ ImportError: 自分のファイル名が selenium.py
→ モジュール名と競合しないようにselenium_test.pyに変更。 - ❌ WebDriver の引数ミス
→webdriver.Chrome(service=..., options=...)の形式にする。 - ❌ find_element_by_xpath がない
→ Selenium 4.3 以降ではdriver.find_element(By.XPATH, ...)を使う。 - ❌ NoSuchElementException
→ JavaScriptで表示される要素はWebDriverWaitで明示的に待つ必要がある。 - ❌ chromedriver 実行時に killed
→ Apple Silicon 向け arm64版のchromedriver を使用。 - ❌ Gatekeeper によるブロック
→xattr -d com.apple.quarantine path/to/chromedriverで解除。
🚀 ここがすごい!Selenium 4.6 以降の進化
Selenium 4.6 から「selenium-manager」機能が追加され、次のような画期的なことが可能になりました:
- ✅ ドライバの手動ダウンロード不要!
- ✅ 自動でバージョンの合った ChromeDriver を取得
- ✅ Selenium 4.11 以降はなんと ブラウザ自体も内蔵(Chrome for Testing)
つまり、環境構築の難しさが一気に軽減されたんです!
✅ 最終的に動作したコード(CSSセレクタ+明示的待機)
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = webdriver.ChromeOptions()
# options.add_argument('--headless') # 必要に応じて
driver = webdriver.Chrome(service=Service(), options=options)
driver.implicitly_wait(3)
driver.get("https://www.library.chiyoda.tokyo.jp/")
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "span.schedule-list01__text")))
print("本日の開館状況:", element.text)
driver.quit()
📎 その他Tips
- chromedriver のパスを通すには
~/.zshrcにexport PATH="$HOME/tools:$PATH"を追加。 - macOSの「開けません」系の警告は「システム設定」→「セキュリティとプライバシー」から開けるように。
🎯 おわりに:APIと共に成長しよう
Selenium は毎年のように進化しています。バージョンによってコードが動かなくなることもあるので、常に公式のAPIドキュメントを確認しながら開発する習慣がとても大切です。
特に今後は「selenium-manager」の登場によって、より簡単・高速に環境を整えられるようになりました。ドライバの手動DLは過去のものになるかもしれませんね。
これからも Python × Selenium のスクレイピングはさらに便利に進化していきます。情報を追いつつ、自動化の力を味方にしていきましょう!
この記事が参考になったら、ぜひシェアしていただけると嬉しいです!


0 コメント