スクレイピング chrome driver を実行するまで

これは何

スクレイピングを実行するにあたって、chromedriver を導入するまでの記事です。


ChromeDriver (クロームドライバー)とは、Google Chromeブラウザを自動的に操作するためのツールです。これは、WebDriverプロトコルを実装しており、主にウェブアプリケーションのテストを自動化するために使われます。ChromeDriverは、特にSeleniumというオープンソースの自動化フレームワークと組み合わせて使用され、ブラウザ操作をスクリプトで自動化する際に非常に便利です。


🪴 実行環境

  • Apple Silicon M1 MacBook Air
  • 16 Gb
  • macOS Sequoia 15.0
  • chromedriver version : ChromeDriver 129.0.6668.58
  • Google Chrome version : 129.0.6668.59(Official Build) (arm64)
  • 2024/09/18 現在の実行

🛠️ やり方

まずは作業するディレクトリを作成します。

mkdir scrapingTest

venv モジュールを使用して仮想環境を作成する。
venv という名前のディレクトリがカレントディレクトリに追加されます。

python -m venv venv

仮想環境有効化

source venv/bin/activate

必要なライブラリのインストール

pip install requests beautifulsoup4 selenium
  • requests: ウェブページからデータを取得するライブラリ。
  • BeautifulSoup4: HTMLやXMLのデータを解析し、必要な情報を抽出するためのライブラリ。
  • Selenium: JavaScriptで生成されたコンテンツを扱うための自動化ライブラリ。動的なページにも対応。

ChromeDriver のインストール

ChromeDriver のインストール

macの方はbrewをつかって入れます。

brew install chromedriver

Webサイトから落としたい方は最新安定版は以下リンクからお使いのOSに合ったものをダウンロードできるはずです。https://googlechromelabs.github.io/chrome-for-testing/#stable

chromedriver のパスを確認する

which chromedriver

brew –prefix を使った確認は“No available formula with the name “chromedriver”. Did you mean chrome-cli?”と返ってくるため、できませんでした。解決方法はあると思いますが…。

実行確認

pythonファイルを作る

touch scraper.py
from selenium import webdriver

# ChromeDriverのパスを指定
driver = webdriver.Chrome(executable_path='/opt/homebrew/bin/chromedriver')

# 例: Webページにアクセス
driver.get('https://coiai.net')

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

私の場合出力されたパス名は/opt/homebrew/bin/chromedriverだったのでこれを当てはめています。

上記ファイルを正しく実行できた場合は、一瞬私のブログが立ち上がって、ブラウザが閉じる動作をすると思います。
ターミナルからの返答はありません。

このような場合は失敗

【ケース1】システム環境設定の問題

実行すると下記のポップアップが出る場合があります。

Appleは、“chromedriver”にMacに損害を与えたり、プライバシーを侵害する可能性のあるマルウェアが含まれていないことを検証できませんでした。

その場合は システム環境設定 を開いてください。
プライバシーとセキュリティ の項目をクリックして、下部までスクロールすると、 お使いの Mac を保護するために “chromedriver” がブロックされました。 と表示されているはずです。
その右にある”このまま許可” のボタンを押下し、再度ターミナルで実行すればできます。

【ケース2】ChromeDriver と Chrome のバージョン違いによるエラー

もしここで以下のような返答があれば、お使いの Chrome と chromedriver のバージョンが合っていない可能性があります。

Traceback (most recent call last):
  File "/Users/coiai/Code/scrapingTest/scraper.py", line 6, in <module>
    driver = webdriver.Chrome(service=service)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/coiai/Code/scrapingTest/venv/lib/python3.12/site-packages/selenium/webdriver/chrome/webdriver.py", line 45, in __init__
    super().__init__(
  File "/Users/coiai/Code/scrapingTest/venv/lib/python3.12/site-packages/selenium/webdriver/chromium/webdriver.py", line 66, in __init__
    super().__init__(command_executor=executor, options=options)
  File "/Users/coiai/Code/scrapingTest/venv/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 212, in __init__
    self.start_session(capabilities)
  File "/Users/coiai/Code/scrapingTest/venv/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 299, in start_session
    response = self.execute(Command.NEW_SESSION, caps)["value"]
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/coiai/Code/scrapingTest/venv/lib/python3.12/site-packages/selenium/webdriver/remote/webdriver.py", line 354, in execute
    self.error_handler.check_response(response)
  File "/Users/coiai/Code/scrapingTest/venv/lib/python3.12/site-packages/selenium/webdriver/remote/errorhandler.py", line 229, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 129
Current browser version is 128.0.6613.138 with binary path /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
Stacktrace:
0   chromedriver                        0x0000000102457ed4 cxxbridge1$str$ptr + 1906348
1   chromedriver                        0x0000000102450344 cxxbridge1$str$ptr + 1874716
2   chromedriver                        0x0000000102064264 cxxbridge1$string$len + 89492
3   chromedriver                        0x000000010209a1dc cxxbridge1$string$len + 310540
4   chromedriver                        0x0000000102099404 cxxbridge1$string$len + 306996
5   chromedriver                        0x00000001020951b0 cxxbridge1$string$len + 290016
6   chromedriver                        0x00000001020916c0 cxxbridge1$string$len + 274928
7   chromedriver                        0x00000001020d2188 cxxbridge1$string$len + 539832
8   chromedriver                        0x00000001020d1ac8 cxxbridge1$string$len + 538104
9   chromedriver                        0x000000010209d134 cxxbridge1$string$len + 322660
10  chromedriver                        0x000000010209dd84 cxxbridge1$string$len + 325812
11  chromedriver                        0x000000010241ff90 cxxbridge1$str$ptr + 1677160
12  chromedriver                        0x00000001024248fc cxxbridge1$str$ptr + 1695956
13  chromedriver                        0x00000001024054b8 cxxbridge1$str$ptr + 1567888
14  chromedriver                        0x00000001024251cc cxxbridge1$str$ptr + 1698212
15  chromedriver                        0x00000001023f6a60 cxxbridge1$str$ptr + 1507896
16  chromedriver                        0x0000000102441214 cxxbridge1$str$ptr + 1812972
17  chromedriver                        0x000000010244136c cxxbridge1$str$ptr + 1813316
18  chromedriver                        0x000000010244ffe4 cxxbridge1$str$ptr + 1873852
19  libsystem_pthread.dylib             0x000000019abbf2e4 _pthread_start + 136
20  libsystem_pthread.dylib             0x000000019abba0fc thread_start + 8
chromedriver --version

で返ってくるバージョン情報と
chrome の更新はchromeの設定からchromeについて、からみられるバージョン情報を見比べてみてください。(場合によってはアップデートしましょう)

coiai.netでは案件受付中です。
Vtuber、建築モデリング、EC構築、ネイティブアプリ制作、制服の制作(実は縫製業もメイン)、Vision Pro向けアプリ etc…
様々な制作開発を行っています。

ご気軽にご相談ください!

コイアイちゃんのアバター

この記事を書いたのは


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Top
Blog
Works
contact