【Pythonスクレイピング】実行時にブラウザが勝手に閉じる原因と対処法|ChromeDriver更新と一時的な回避策

目次

背景

PythonでSeleniumを使ったスクレイピングを行っていたところ、
JupyterLab上では正常に動作するのに、コマンドプロンプトで .py ファイルを実行すると、
ブラウザ(Chrome)が自動で閉じてしまうという問題が発生しました。

以下に、試した対処法と最終的に取った回避策を記録します。


試したこと一:ChromeDriverの更新

原因としてまず疑ったのが、Chrome本体とChromeDriverのバージョンの不一致です。
この不一致によって、ブラウザが起動直後に落ちることがあります。

実行した手順は次の通りです。

  1. Google Chromeのバージョン確認
     Chromeを開く → 「︙」→「ヘルプ」→「Google Chrome について」→ バージョン確認
  2. ChromeDriverのダウンロード
     https://chromedriver.chromium.org/downloads にアクセス
     Chromeのバージョンと同じ先頭3桁のバージョンを選ぶ
     Windowsなら chromedriver_win32.zip を選択
  3. zipを解凍し、既存の chromedriver.exe を上書き

これを行っても現象は改善されませんでした。


試したこと二:コマンドプロンプトのエラーログ確認

実行時に次のようなエラーログが出ていました。

ERROR:device_event_log_impl.cc(211)] [1234:5678] ...

これについて調べたところ、Chrome内部の警告であり、
今回のクラッシュとは直接関係がないものとされていました。


最終的な回避策:sleep関数を使ってブラウザを保持

原因の特定には至らなかったため、実用的な回避策として、
プログラムの末尾に次のようなコードを追加しました。

import time
time.sleep(3600)

これにより、ブラウザが自動終了せず、操作を続けられるようになりました。


再確認すべき点

  1. ChromeとChromeDriverのバージョンが一致しているか
  2. SeleniumとPythonのバージョンが安定版か
  3. オプション設定(ヘッドレスやno-sandboxなど)が影響していないか
  4. プログラム内で driver.quit() や driver.close() を呼び出していないか

これらの点をすべて確認しても改善しない場合、sleepによる一時保持も選択肢になります。


まとめ

JupyterLabでは問題なく動くのに、コマンドプロンプトで実行するとChromeが落ちてしまう問題に対し、
ChromeDriverの更新やエラーログの調査を行いましたが、根本的な解決には至りませんでした。

そこで、プログラムに time.sleep() を追加することで、実用的な回避策として対応しました。

完全な解決ではありませんが、似た問題に直面した方の一助になれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次