Google ColabでSeleniumを使うとき
Google ColabでSeleniumを使ってWebスクレイピングをしようとしたところ,以下のコードでwebdriverのエラーが発生した.
from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager options = Options() options.add_argument('--headless') options.add_argument("--no-sandbox") options.add_argument('--disable-dev-shm-usage') driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
WebDriverException: Message: Service /root/.wdm/drivers/chromedriver/linux64/108.0.5359/chromedriver unexpectedly exited. Status code was: -6
以下のようにchromedriverのパスを直接指定すると正常に動作した.
driver = webdriver.Chrome("/usr/lib/chromium-browser/chromedriver",options=options)
Google ColabではChromeDriverManagerが使えないのか調査すると,以下の記事を発見した. メモリ割り当てチェッカーを無効にする必要があるらしい. ja.stackoverflow.com
記事に倣い以下のようにコードを追加したところ,正常に動作した.
import os if 'LD_PRELOAD' in os.environ: ld_preload = os.environ['LD_PRELOAD'] del os.environ['LD_PRELOAD'] driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options) if 'ld_preload' in locals(): os.environ['LD_PRELOAD'] = ld_preload