Google Colaboratoryアップデート後のSeleniumエラー解決法:コードコピペで解決!

当ページのリンクには広告が含まれています。
Google Colaboratoryアップデート後の Seleniumエラー解決法コードコピペで解決!

Google Colaboratoryのアップデート後に生じているSeleniumエラーを解決するコードを紹介します。

Seleniumを使ったスクレイピングが難しくなっていました。この記事では、その問題を解決するための手順をコードとともに紹介します。

解決記事です

Github Google Colab WebDriverException: Message: Service chromedriver unexpectedly exited. Status code was: 1 #10

目次

Google Colabアップデート後のSeleniumエラーの原因

Chromiun browserのUbuntuのバージョンが上がったことによるchromium-browserの対応が必要になったことです。普通にやるとエラーがでてしまいます。

エラー解決手順 Chromiun browserの対応(snap)

%%shell
# Ubuntu no longer distributes chromium-browser outside of snap
#
# Proposed solution: https://askubuntu.com/questions/1204571/how-to-install-chromium-without-snap

# Add debian buster
cat > /etc/apt/sources.list.d/debian.list <<'EOF'
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster.gpg] http://deb.debian.org/debian buster main
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-buster-updates.gpg] http://deb.debian.org/debian buster-updates main
deb [arch=amd64 signed-by=/usr/share/keyrings/debian-security-buster.gpg] http://deb.debian.org/debian-security buster/updates main
EOF

# Add keys
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DCC9EFBF77E11517
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 112695A0E562B32A

apt-key export 77E11517 | gpg --dearmour -o /usr/share/keyrings/debian-buster.gpg
apt-key export 22F3D138 | gpg --dearmour -o /usr/share/keyrings/debian-buster-updates.gpg
apt-key export E562B32A | gpg --dearmour -o /usr/share/keyrings/debian-security-buster.gpg

# Prefer debian repo for chromium* packages only
# Note the double-blank lines between entries
cat > /etc/apt/preferences.d/chromium.pref << 'EOF'
Package: *
Pin: release a=eoan
Pin-Priority: 500


Package: *
Pin: origin "deb.debian.org"
Pin-Priority: 300


Package: chromium*
Pin: origin "deb.debian.org"
Pin-Priority: 700
EOF

# Install chromium and chromium-driver
apt-get update
apt-get install chromium chromium-driver

# Install selenium
pip install selenium

上記でGoogle ColaboratoryのUbuntuのバージョンが上がったことによるchromium-browserの対応(non snap)をしています。そのうちGoogle Colaboratory側で対応がなされると思いますが、それまでの処置です。あとは以下のコードが動くことを確認しました。Urlのところを変えて使って下さい。

Selenium スクレイピングコードの例

次に、Seleniumを使ったスクレイピングのコード例を紹介します。

urlのところは<url>を適宜変えて使って下さい

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

url = "<url>" 
options = Options()
options.add_argument("--headless") # or use pyvirtualdiplay
options.add_argument("--no-sandbox") # needed, because colab runs as root

options.headless = True

driver = webdriver.Chrome("/usr/bin/chromedriver", options=options)

driver.get(url)
print(driver.title)
driver.quit()

参考いただければ幸いです。

この記事がSeleniumエラー解決の手助けになれば幸いです。今後もGoogle Colaboratoryを活用して、スクレイピングやPythonの学習を楽しみましょう!

関連記事

プログラミング学習の重要性が強調される昨今、無料ですぐに学習を開始することができるのをご存じでしょうか? Google Colaboratoryを使うことでPython、機械学習などをすぐにはじめることができます。

あわせて読みたい
Google Colaboratoryでプログラミング学習環境を作る プログラミング学習の重要性が強調される昨今、無料ですぐに学習を開始することができるのをご存じでしょうか? Google Colaboratoryを使うことでPython、機械学習など...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

こんにちは、Dr. Harv です。専門医としてのキャリアを積む一方で、資産運用、副業、ポイ活にも取り組んでいます。
このブログ「dr-harv.com」では、日々の日常、投資の知見、趣味など幅広いトピックを扱っています。より良い未来につながることをコンセプトにしています。読者の皆様にとって何か役立つ情報を提供できれば幸甚です。

コメント

コメントする

目次