coiai Logo

スクレイピング 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.boy.jp')

# ブラウザを閉じる
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について、からみられるバージョン情報を見比べてみてください。(場合によってはアップデートしましょう)

投稿日: 2024年9月18日
カテゴリ: Python
タグ: Apple Silicon, python, スクレイピング, プログラミング
coiai

coiai

この記事もおすすめ

ポッドキャストを取った後Auditionですべきこと

ポッドキャストを取った後Auditionですべきこと

この記事はポッドキャストなどの音声コンテンツを取った後にAuditionで編集する方法について解説しています。 環境 やること 基本的に以下の4つの工程をすると、かなりクオリティアップにつながります! ノイズリダクション 無音部分を選択します。開始地点をi, 終わりをo キーを押すと選択できます。選択できたらエフェクト→ノイズリダクション/リストア→ノイズプリントをキャプチャを押します。 続いて、全体を選択します。cmd, a で全選択になります。エフェクト→ノイズリダクション/リストア→ノイズリダクションを選択します。 以下のようなパネルが表示されうので、ノイズのみをきたりして、削減ちを調整して、良い感じになったら適応ボタンを押します。 シングルバンドコンプレッサ 左のパネルのエフェクトトラックから▶️ボタンを押し、振幅と圧縮→シングルバンドコンプレッッサを選択します。 選択すると下記のようなパネルが開きます。それぞれ、 といった意味があります。設定値は下記画像のようにしています。 設定がめんどくさい場合はプリセットからラジオレベラーを選択してください。 EQ(声をクリアにする) パラメトリックイコライザーを使用します。エフェクト→フィルターとイコライザ→パラメトリックイコライザーを選択します。 私の場合は下記のように設定しています。 無音カット エフェクト→診断→無音をカットをすると左パネルに診断が表示されます。 効果を無音を削除、プリセットをポッドキャストにするとちょうどよくなると思います。設定したら、スキャンボタンを教えて、全て削除で無音がカットされます。 かなりカットされてしまうので、短いCM等に使うのはありかなという感じです。 参考 Adobe 無音カット https://helpx.adobe.com/jp/audition/using/strip-silence.html

この記事を書いた会社

株式会社coiaiは、「想像できることを美しく実現」を掲げ、XR・Web・アプリ・システム開発およびDX支援を行う会社です。 創業2022年、東京都練馬区に本社を置き、要件のヒアリングからPoC(概念実証)、本番運用まで一貫して伴走します。 まずはお気軽にご相談ください。

商号株式会社 coiai創業2022年1月設立2025年1月23日資本金1,500,000円(設立時点)本社所在地東京都練馬区関町北 3-6-9代表者代表取締役 竹村 啓佑 / 代表取締役 服部 陽良

主なご相談内容

会社概要・役員紹介を見る

詳しい会社情報は会社概要ページでご覧いただけます。

資料請求・無料相談

導入要件のヒアリングからPoC、本番運用まで伴走します。まずはお気軽にご相談ください。

お問い合わせの前に 個人情報保護方針 をご確認ください。