- VBAでスクレイピングやってみたいけどどうやればいい?
- 準備に時間がかかって面倒そう
- VBAスクレイピングに関する情報が少なくてよくわからない
スクレイピングを始めようとした初心者がソフトのインストールの段階で手間取って挫折してしまうケースは多いです。
私は現在Web上で日々確認する業務を公私含めて30個以上自動化しています。しかし最初はYahoo画面の表示をさせることさえも苦労しました。
そこでこの記事ではMicrosoft Edgeを使った初心者向けスクレイピングの環境構築方法についてわかりやすく説明します。
なおインストールするソフトは3つありますが戸惑わないよう図を多く入れています。
これができれば自動でサイトの立ち上げができるようになりますので是非習得していってください。
なおChromeで使用されたい方はこちらをご確認ください。
結論
必要なステップは以下4つ(ソフトのインストールが3つ コードが1つ)です。
- Seleniumをインストールする
- Microsoft Edge WebDriverをインストールする
- NET.FrameWorkをインストールする
- Excel VBAでコードを入力する
次から詳しく説明します。
Seleniumをインストールする
GitHubのSeleniumBasicダウンロードページにて.exeファイルをクリックします
ダウンロードしたファイルをクリックすると、セットアップ画面が表示されます。
「Next>」をクリックします。
ライセンスの同意画面が表示させるので「I agree~」にチェックを入れ「Next>」をクリックします。
どのコンポーネントを入れるか聞かれるのでそのままで「Next」をクリックします。
インストールされる場所がでますのでメモしたうえで「Next」をクリックします。
なおメモを忘れた場合でもインストールされる場所は C:\Users\(ユーザー名)\AppData\Local\SeleniumBasicになりますのでこれを覚えておいてもらったら結構です。
セットアップ完了の画面になりますので「Finish」をクリックします。
これでSeleniumのインストールは完了です。
Microsoft Edge WebDriverをインストールする
まずMicrosoft Edgeのバージョンを確認します。
Microsoft Edgeを立ち上げ、「右上の3点リーダ」ー→「設定」をクリックします。
設定の「Microsoft Edgeについて」をクリックし、Microsoft Edgeのバージョンをメモしておきます。
Microsoft Edge WebDriverのサイト
(https://developer.microsoft.com/ja-jp/microsoft-edge/tools/webdriver/)にてアクセスし、画面下の方にある該当するバージョンをクリックします。
該当のOS用のdriverを選択します(ここではWindows6bit版として x64を選択しています)
ファイルを適当な場所に解凍します。
実行ファイルである「msedgedriver.exe」を「edgedriver.exe」に書き換えます。
(これを行わないとSeleniumで実行できないので注意ください)
さきほどのSleniumBasicのインストールフォルダ(C:\Users\(ユーザー名)\AppData\Local\SeleniumBasic)にあるedgedriver.exeを上書きをします。
これで最新版のMicrosoft Edge WebDriverのインストールが完了しました。
NET.FrameWorkをインストールする
次にSeleniumを動かすのに必要なNET.FrameWorkの目的のバージョンをインストールします。
NET.FrameWorkとはWindows でさまざまなアプリケーションを実行するために必要なものでSeleniumを動かす際にも必要になります。(NET.FrameWorkについてはこちら)
新しいPCの場合NET.FrameWorkのバージョンが高いのでSeleniumに付属したものを再インストールします。
SeleniumのNET.FrameWorkは以下に入っています。
C:\Users\[ユーザー名]\AppData\Local\SeleniumBasic\Scripts 内のStartEdge.vbs
StartEdge.vbs を実行すると、必要なバージョンの .NET Framework のインストーラが起動します。
なお終わったら一度Windowsを再起動してください。行うことで正常にインストールされます。
Excel VBAでコードを入力する
ここまで準備すればやっとVBAを立ち上げることができます。
VBEを立ち上げたらまず参照設定をします。
[ツール]→[参照設定]→[Selenium Type Library]にチェック
次にGoogleを立ち上げるコードを書いてみます。
Sub Google()
'Edgeを立ち上げてGoogleを立ち上げる
Dim Driver As New Selenium.WebDriver
Driver.Start "Edge"
Driver.Get "https://www.google.com/?hl=ja"
Stop
End Sub
コードの詳細については次回以降で説明しますがEnd~Subの手前にStopを入れています。
VBAで立ち上げたEdgeはSub~End Subの処理が終了すると自動的に消える(解放される)為End Subの手前にStopをいれて一時停止させています。
なおこのコードを実行した後のVBEとEdge画面は以下になります。
立ち上がったEdgeは最前面に来ていないと思いますのでEdgeをクリックして確認してください。
[Microsoft Edgeは自動テストソフトウェアによって制御されています]が出ていれば目的は達成です。
ここでのまとめ
今回はVBAでスクレイピングを行うために必要なSeleniumのインストール方法について説明しました。
インストールは少し大変でしたが、コード自体は最初のSelenium立ち上げのコードさえ覚えてしまえばあとは少しのメソッドの利用で誰でも簡単に操作できます。
コードについては次回以降で詳しく説明していきます。
↓困ったときは以下が頼りになります。私も利用させてもらってます😊。
起動済みのEdgeを用いてスクレイピングしたい方は以下をどうぞ。
SeleniumBasicでのWebスクレイピングに関するまとめ記事はこちらをどうぞ
Web-APIを用いたデータ取得に関する記事はこちらをどうぞ
【VBA】Web APIを使ってデータを取得する(OpenWeatherMap)1
【VBA】Web APIを使って時間別天気予報を取得する(気象庁API)
【VBA】Web APIを使ってLINE通知を行う(LINE Notify)1
【API-VBA】Web APIを使って翻訳をする(DeepL API)
コメント