こんにちは、しらすです。
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を使うときの雑多な知見 | さかな前線
コメント