こんにちは、Heywaです。
私のメインの開発環境はMac M1(Apple Silicon)なのですが、この環境でPythonを使った自動化システムを構築する際、いくつか特有のハマりポイントがあります。
今回は、Mac M1環境において、Claudeを活用しながらSeleniumによるスクレイピング自動化環境を構築する極意について、私の備忘録としてまとめておきます。
Mac M1環境でのSeleniumの壁:ChromeDriver
SeleniumでGoogle Chromeを操作するためには、ChromeDriverという実行ファイルが必要です。Intel Macの時代は適当にダウンロードしてパスを通せば動いたのですが、M1環境(ARMアーキテクチャ)では、アーキテクチャの違いによるエラーに悩まされることがよくありました。
しかし、最近のSelenium(バージョン4.6以降)では、Selenium Managerという機能が内蔵され、この問題が劇的に解決しました。
Selenium Managerの恩恵
Selenium Managerのおかげで、自分でChromeDriverをダウンロードしたり、パスを設定したりする必要がなくなりました。スクリプトを実行した際、ローカルにインストールされているChromeのバージョンに適合するドライバを、Seleniumが自動的にダウンロードして管理してくれます。
つまり、Mac M1環境であっても、以下のようなシンプルなコードでブラウザが起動するのです。
from selenium import webdriver
# これだけで、適切なChromeDriverが自動でセットアップされる
driver = webdriver.Chrome()
driver.get("https://awesome03.com")
driver.quit()
これは本当に画期的なアップデートでした。環境構築のストレスがゼロになったと言っても過言ではありません。
Claude Codeを「環境構築の相棒」にする
とはいえ、Pythonの仮想環境(venv)の作成や、必要なライブラリのインストールなど、プロジェクト立ち上げ時のルーティン作業は存在します。ここで活躍するのが、ターミナル上で動くClaude Codeです。
私は新しいスクレイピングプロジェクトを始める際、ターミナルで以下のようにClaudeに指示を出します。
「現在のディレクトリにPythonの仮想環境を作成し、selenium, python-dotenv, requestsをインストールして。その後、.envファイルのテンプレートと、Seleniumのヘッドレスモードで動くベーススクリプト(main.py)を作成して。」
すると、Claude Codeが自律的にコマンドを実行し、ファイルを作成し、数秒で完璧な開発環境を整えてくれます。Mac M1のターミナル(zsh)環境とも非常に相性が良く、エラーが出た場合もその場で原因を解析して修正してくれます。
スクレイピング時の注意点(マナーと規約)
最後に、スクレイピングを自動化する際の重要な注意点に触れておきます。
技術的に可能だからといって、何でもかんでもスクレイピングして良いわけではありません。対象サイトの robots.txt を確認し、利用規約でスクレイピングが禁止されていないかチェックすることは必須です。
また、サーバーに負荷をかけないよう、リクエストの間隔(time.sleep() など)を適切に空けることも重要です。私はClaudeにスクリプトを書かせる際、必ず「サーバー負荷を考慮して、リクエスト間にランダムなウェイトを入れる処理を追加して」と指示するようにしています。
まとめ
Mac M1のパワフルな処理能力と、Selenium Managerによる環境構築の簡略化、そしてClaude Codeという最強のアシスタント。これらが揃った現在の環境は、スクレイピングや自動化を行う上で過去最高の体験を提供してくれます。
皆さんも、この快適な環境で、自分だけのデータ収集・自動化パイプラインを構築してみてはいかがでしょうか。
