はじめに
本記事は、Raspberry PiにSelenium + Chromiumドライバのスクレイピング環境を構築するための記事です。
静的なhtmlコンテンツを取得するurllibは、JavaScriptなどの動的なページに対応していません。そこで、SeleniumでWebブラウザを操作することで、動的なページに対するスクレイピングができます。また、Seleniumは、Google Chrome、Firefox、IE、Opera等複数のWebブラウザに対応しています。
環境
Raspberry Pi(※1) + Selenium + Chromium
Linux用のChromeドライバだと、プラットフォームが違うので対応していないため、Chromiumドライバを使用します。Chromiumドライバはこちらよりダウンロード可能です。
なお、最新のChromiumドライバのchromium-chromedriver 65(※2)では動作しないため、古いバージョンであるchromium-chromedriver 61をインストールします。
(※1)Raspbian GNU/Linux 9.3 (stretch)
(※2)本記事執筆時点
構築手順
-
Seleniumをインストールする
$ pip3 install selenium
-
Seleniumのインストール確認
$ pip3 list | grep selenium
-
debパッケージをインストールする
$ sudo dpkg -i chromium-chromedriver_61.0.3163.79-0ubuntu0.14.04.1196_armhf.deb
-
Chromiumドライバのインストール確認
$ ls -l /usr/lib/chromium-browser/chromedriver
動作確認
- 動作確認プログラム
#! /usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
sys.path.append('/home/pi/.local/lib/python3.5/site-packages/')
from selenium import webdriver
browser = webdriver.Chrome(executable_path="/usr/lib/chromium-browser/chromedriver")
browser.get('https://www.google.com/')
Raspberry PiにVNCでログインしてプログラムを実行すると、Webブラウザ(Chrome)が起動し指定したページを開きます。