【VBA】Seleniumを使って簡単にWebスクレイピングする(準備編)

VBA
スポンサーリンク


Excel VBAでWebスクレイピングをする場合にIEを使う方法があるのですが、なんとなくIEを使うことに抵抗があったりしませんか?
Seleniumを使うことでChromeを起動させることができるようになります。
そして実際にWebページをスクレイピングするコードも簡単に書けるので非常に便利です。

今回は環境の準備として、SeleniumをインストールしてVBAでChromeを起動させてみます。

データの取得についてはこちら

【VBA】Seleniumを使って簡単にWebスクレイピングする(データ取得編)
Seleniumを使わなくてもIEを起動して、Webページをスクレイピングすることもできますが、IEを起動することに抵抗があったり、Webスクレイピングする操作が手間だったりします。 Seleniumを使うとVBAからChromeを起動して...
スポンサーリンク

Seleniumをインストール

SeleniumはGithubで公開されています。
Release page」をクリックすると、最新版のページが開きます。

Seleniumbasic
Seleniumbasic : A Selenium based browser automation framework for VB.Net, VBA and VBScript

本記事のエントリー時点での最新版は「SeleniumBasic v2.0.9.0」です。
「SeleniumBasic-2.0.9.0.exe」をダウンロードします。

ダウンロードした「SeleniumBasic-2.0.9.0.exe」を起動してインストールします。
特に特殊な設定とかはないので画面の指示通りに進めてください。

ChromeDriverをインストール

ChromeDriverを以下のサイトからダウンロードします。

Moved Temporarily

Googleのサイトなので私のように中国にいる場合はアクセスできません。
日本や香港などのVPNサーバ経由でアクセスしてください。

私はAWSを使って、VPNサーバを東京リージョンに構築しています。

V2RAYサーバをAWSのEC2で構築すれば1年間ほぼ無料のはず
コロナウイルスの影響で上海への道は閉ざされたままの状態が1か月以上続いています。 1年後には最近のこの状態を笑って振り返ることができれば幸せです。 中国と言えば「中国からTwitterやFacebookが利用できない」なんて話は有名な話です...

使っているChromeのバージョンに合うものをダウンロードしてください。

Chromeのバージョンは「右上の三点ボタン」→「ヘルプ」→「Google Chromeについて」で確認できます。

そうするとバージョンが表示されます。
本記事のエントリー時点でバージョンは「94.0.4606.54」でした。

ダウンロードしたChromeDriverをSeleniumのインストールフォルダに上書きします。
Seleniumのインストールフォルダは「C:\Users\(ログインしているユーザ名)\AppData\Local\SeleniumBasic」です。

VBAでChromeを起動させる

VBAでSeleniumを使う準備が整ったので、実際にVBAからChromeを起動させてみます。

参照設定

VBAでSeleniumのライブラリを使えるように参照設定を行います。

「ツール」→「参照設定」を開きます。

「Selenium Type Library」にチェックを入れて、「OK」をクリックします。

Chrome起動

Chromeを起動して、Yahooのトップページを開きます。

Sub OpenYahoo()
    Dim Driver As New Selenium.WebDriver

    Driver.Start "Chrome"
    Driver.Get "https://www.yahoo.co.jp"
    Stop
    Driver.Close
    Set Driver = Nothing
End Sub

StopコマンドでChromeが起動していることを確認しています。

バージョンが異なるChromeDriverを使うと…

Chromeのバージョンと異なるChromeDriverを使うとエラーになるので注意してください。