Colaboratory で Selenium を利用する (2024年3月版)
まとめ
Colaboratory を利用して、Selenium でスクレイピングを行うサンプルです。
Selenium + ChromeDriver によるウェブサイトの取得方法
動的なウェブサイトスクレイピングするには、JavaScript が実行された状態で取得しなければならず、Selenium と ChromeDriver にて実現する事が可能です。このサンプルでは、Selenium を利用するところまでを実現します。
Selenium をインストールします。Colaboratory では頭に「!」をつけるとコマンドとして扱われます。
!pip install selenium
ChromeDriver をインストールします。
!apt-get update
!apt install chromium-chromedriver
Selenium を利用してウェブサイトの取得を行い、Aタグのリンク一覧を抽出してみます。
from selenium import webdriver
from selenium.webdriver.common.by import By
# 対象URLを指定
url = "http://wp.apiless.com/"
# driver のオプション設定
options = webdriver.ChromeOptions()
options.add_argument('--headless') # ヘッドレスモードを利用
options.add_argument('--no-sandbox') # sandbox 機能を利用しない
options.add_argument('--disable-dev-shm-usage') # /dev/shm を利用しない (メモリ不足対策)
# オプションを指定してブラウザを立ち上げます
browser = webdriver.Chrome(options=options)
# 対象URLのコンテンツを取得
browser.get(url)
# コンテンツからaタグのリストを作成
tags = browser.find_elements(By.TAG_NAME, "a")
# リンク先のhref属性を処理する
for tag in tags:
print(tag.get_attribute("href"))
# 終了します
browser.quit()
実行結果
Colaboratory の利用再開
Colaboratory は時間が経つとリセットされます。コードは残りますが、インストールしたソフトウェ