【Python】WebDriverException: unknown error: net::ERR_SSL_PROTOCOL_ERROR (Session info: headless chrome = xxxx) のエラーが出た時の解決方法

生活の知恵

こんにちは、しらすです。

Python + Selenium + Chrome WebDriverでスクレイピングを行っていると、特に大きなデータで以下のようなエラーが発生することがありましたので、解決策を記載しておきます。

起動オプションに「–disable-dev-shm-usage」を追加する

/dev/shmのメモリバイオレーションによって発生する様子。こちらの起動オプションを追加することで解決するようです。

options.add_argument('--disable-dev-shm-usage')

おまじない:起動オプションセットを記載しておく

以下の起動オプションはとりあえず入れておけばエラーが減りますので、とりあえずChrome WebDriverを使う場合は入れておいたら良いかもしれません。

#起動オプション
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-gpu')
options.add_argument('--no-sandbox')
     
driver = webdriver.Chrome("chromedriver.exe", options=options)
driver.get(url)

参考

こちらのサイトは端的にまとめてくれています。

Pythonでselenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crashがでたとき | ふらっと考える
Python3とSeleniumでクローラーを作成しているときに発生したエラー。 Docker上でChrome

こちらは少し細かく情報を載せてくれています。

Webアプリ組み込み目的でSelenium WebDriver + Headless Chromium/Firefoxを使うときの雑多な知見 | さかな前線

コメント