VBA×ChromeでWebスクレイピング難しい初期設定を分かりやすく解説

お知らせ記事には広告が含まれておりますがExcelのスキルUPに繋がる様コンテンツ自体は手を抜かずに作成しております

VBA×ChromeでWebスクレイピングを始める

Webからテキストや画像などの情報を取得する方法の1つにWebスクレイピングがあります。

特定の手法でWebにアクセスし情報を取得したりWeb内のテキストボックスに情報を入力することができます。

このWebスクレイピングですが数年前までは作業を実行する際に使用される主なブラウザはIEでした。

しかしMicrosoftさんは2022年6月をもってInternetExplorerのサポートを終了しています。

この事からEdgeやChromeなど他のブラウザを使った別の方法が求められるようになってきました。

本記事では今後定番となるSeleniumbasicを使ったWeb情報を取得する方法について紹介、解説していきます。

読み方はセレニウムベーシックです。英語表記の方が使用頻度が高いです。できるだけ英語名で覚えてください。

EnjoyExcel
EnjoyExcel

Webスクレイピングはやり方さえ分かればそんなに難しくないですよ。

以降の記事の中でアプリのダウンロードからコードの書き方まで一貫して情報提供します。

この記事でわかる事

大きく分けると5つです。

この記事でわかる事
  1. Webスクレイピングの概要がわかる
  2. Seleniumbasicの概要がわかる
  3. 動画で使用感をイメージできる
  4. 環境構築がわかる
  5. 簡単なコードの書き方がわかる
挑戦してみましょう

Enjoy Excel

WebスクレイピングやSeleniumbasicとは何かを間単に説明してから初期設定(環境構築)を説明します。

初期設定(環境構築)は非常に手間がかかります。よって丁寧に解説していきます。

最後に出来るだけ間単にコードを書く為のヒントになる記事を何点か用意しています。

継続して読んでいただくとWebスクレイピングができる様になります。

具体的に書くと「VBAを使ってExcelからChromeやEdgeを操作できる」様になります。

関連書籍:この本で勉強しました

Webスクレイピングに興味があったのですがどうやって勉強したら良いのか分かりませんでした。

色々調べてく中でWebスクレイピングについて分かりやすく書いている本を見つけました。

Webスクレイピングについて書かれているのは約20ページほどですがかなり充実しています。

初期設定Web上の値を取得する為のメソッドがリスト化されている等非常に見易いです。

Webスクレイピングについて

Wikipediaの情報です。

ウェブスクレイピング: Web scraping)とは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと

Wikipedia

http://で始まるWebサイトから情報を抽出する為の方法、行為をWebスクレイピングと呼んでいます。

Seleniumbasicについて

簡単に言いますと「ExcelからWebブラウザを操作するためのツール」です。

Webスクレイピングと絡めて会話で使う際には以下のような使い方をします。

使い方の一例

Seleniumbasicを使ってWebスクレイピングする

ExcelからみたSeleniumの位置付けとしては一般的にはライブラリと言われるものに該当します。

ライブラリがイメージ出来ない方は以下引用をご覧ください。

ライブラリ: library)は、汎用性の高い複数のプログラムを再利用可能な形でひとまとまりにしたものである。ライブラリと呼ぶときは、それ単体ではプログラムとして動作させることはできない、つまり実行ファイルではない場合がある。ライブラリは他のプログラムに何らかの機能を提供するコードの集まりと言える。

Wikipedia

さらにライブラリを具体的に表現します。VBAでSeleniumを使う際は参照設定を使います。

インストールするとVBAの参照設定でSelenium Type Libraryが選択出来る様になります。

参照設定で使えるとライブラリとはどんなものかイメージできる方も出てくるかもしれません。

連想配列で使うMicrosoft Scripting Runtime等と同じ様な位置付けです。

後付けで出来る事が増えるツールといった感じです。

Seleniumbasicは後付けでExcelからWebブラウザが操作できるライブラリという事になります。

処理がイメージ出来るような画像を用意

端的に申し上げますと「ExcelからSeleniumbasic経由でWebスクレイピング」をする事になります。

マクロのプロシージャからSeleniumbasic経由で各ブラウザのドライバーに指示を出します。

ドライバーがマクロからのリクエスト(コード)に対応した操作をブラウザに対して行います。

ドライバーがWeb環境との橋渡し役になり必要な情報を取り出してくるという仕組みです。

Seleniumが情報の橋渡しをしてくれます。

こんな使い方もあります

スクレイピングはWebサイトから情報を抽出する為の方法、行為と書きましたがこんな使い方もできます。

Webサイトに設置してあるボタンをクリックしたり検索窓に文字を入力する事も出来ます。

よって人が実際に作業するようなことも再現できます。

  • Google翻訳に文字を入力して翻訳された情報を取り出す
  • 各種WebAppへのログインを代行させる
  • 天気予報や株価のサイトで個別情報を入力してリアルタイムで生成されたデータを取り出す

こちらの記事では1クリックでYahooのニューストピックスを全て取得する動画を用意しています。

動画

私のブログ内の記事から情報をスクレイピングした動画を用意しました。

簡単ですがスクレイピングがどういったものか分かる様になっています。

BGM付です。再生時は気をつけてください。

複数のURLから情報を取得できる

Webスクレイピングは1度で複数のURLにアクセスして情報を取る事が出来ます。

コードが書ける人であればWeb上にある情報の掴み方だけ覚えれば何でも出来る様になります。

慣れれば比較的簡単にスクレイピング可能です。これで便利さは認識いただけましたね。

難易度は高めです

予想通りかもしれませんがVBA初心者で知識がまだ定着してない方には難しいです。

しかし必要最低限の機能さえおさえれば比較的簡単にWebの情報を取得出来るようなツールになっています。

無料で登録も不要、Seleniumbasic用の特殊な学習も不要というメリットも多いツールです。

しかしデメリットも何点かあります。

デメリットとして1番大きいのは「環境構築とメンテナンスの手間」が挙げられます。

環境構築はかなり大変

Seleniumbasicにおける環境構築はかなり手間がかかります。

コードを書くところまで進めずに断念してしまう人が多いです。

加えて1回設定したらOKというわけにはいきません。

一定のタイミングでメンテナンスが必要という非常に手間のかかる環境の中作業をする必要があります。

面倒だから避けよう」ではなく面倒だからこそしっかり解説」していきます。

以降の記事を読んでいただければ環境面の心配はありません。

環境構築

先にやらないといけない事を書き出しておきます。

作業内容
  • 1
    Seleniumbasicのダウンロードとインストール

    アプリのDLとインストールについて順を追って説明

  • 2
    Chromeのダウンロードとインストールとバージョン確認

    ブラウザ(Chrome)のダウンロードとインストールを行います

    ブラウザのバージョンに対応したドライバーを用意します

  • 3
    Chromeドライバーをダウンロード

    ブラウザのバージョンと同じドライバーをDL

  • 4
    Chromeドライバーを上書保存

    Seleniumがデフォルトで持っているドライバーを上書き

  • 5
    VBEの参照設定で必要なライブラリを選択

    Selenium Type Library を選択

5番のVBEの参照設定はコーディング時に「実行時バインディング」にする事でマストではなくなります。

基本は上記4点は必須だと思って下さい。

実行時バインディングが分からない人は作業内容の1から5までもれなく準備してください。

続いて私のPC環境について情報展開しておきます。

私のPCの環境
  • 使用するブラウザ:Google Chrome
  • OS:Windows10

重要なのは自動で動かすことを想定しているブラウザの種類と自PCに搭載されているOSの種類です。

これをふまえて作業を紹介していきます。

Edgeでの環境構築についても紹介しています。このまま記事を読み進めてください。

Seleniumbasicのダウンロードとインストール

まずはSeleniumbasicのダウンロードです。以下URLにアクセスしましょう。

以下TOP画面です。


少し下の方を見ていくと太字のDownloadという文字が出てきます。その下のRelease pageをClick。

次の画面では中断よりやや下AssetsからSeleniumBasic-2.0.9.0.exeを選択。

これはダウンロード時のバージョンで最新のものを選択してください。

インストーラーをダウンロード出来る様になります。作業し易い様にデスクトップにダウンロードしましょう。

インストーラーをClickすると以下のような画面が起動してきます。Nextを押下。

次のダイアログボックスではI accept ・・・ にチェックを入れます。その後Nextを押下。

WebDriver for Chrome にレ点を入れます。続いてIEのレ点を外しましょう。その後Nextを押下。

既にインストール済みだとこのようなダイアログボックスが立ち上がります。

通常は出ませんが一応お見せしました。スルーして次の画面に進みます。

最終的にこの画面でInstallを押下してインストール開始となります。

インストールが進むとプログレスバーが動いて作業の進捗を見る事ができます。

インストールが終了するとその旨を伝えるダイアログボックスが立ち上がります。

Finishボタンを押下してください。インストールはこれで終了です。

Chromeのダウンロードとインストールとバージョン確認

Chromeのダウンロード、インストール、バージョン確認について説明します。

Chromeのダウンロード

Chromeのダウンロード、インストールは難しくないので省略します。

Chromeのダウンロード先のリンクだけ用意しておきます。必要に応じてダウンロードとインストールをお願い致します。

Chromeのバージョン確認

バージョンを確認する方法を紹介します。Chromeを起動してアドレスバーに以下の様に入力してください。

chrome://version

一番上の値を確認。私は 105.0.・・・という数値です。

先頭の3文字だけでおおよそ大丈夫ですが画像の赤枠にある程度の桁まで数値を控えておきましょう。

Chromeドライバーをダウンロード

以下URLにアクセスしましょう。

ずっと下に見ていく中で自分PCのChromeのバージョンと同じものをダウンロードします。

先頭の3文字が一致していれば大丈夫です。

今回私はCurrent Releasesの105.0.・・・をダウンロードしました。

次の画面ではOS毎にドライバーを選択します。

自分のPCはWindowsですので下から2番目のzipファイルをダウンロードします。Windowsは一択です。

ドライバーのバージョンが合わなかった時

時系列で履歴を残すようにしました。日付が一番近い折りたたみ(アコーディオン)を展開してください。

2024年02月更新:変化無です。「2023/08/23」の折りたたみを開いて作業を行ってください。

2023/07/19 情報を追加します。

自PCにインストールしているドライバーが古くなりエラーが発生しました。

メッセージには115.・・・というバージョンが書かれているのでその情報を頼りにドライバーを探します。

ドライバーを探しにいったのですが115.・・・のバージョンはドライバーが用意されていませんでした。

仕方ないので一番最新であろうと思われる114.0.5735.90のドライバーをインストールしました。

結果としては問題なく実行できました。

ドライバーがChromeの最新バージョンに追いつかない事もあるみたいです

その時は最新のドライバーをインストールしてみてください。

依然としてHOME画面で最新版へのリンクは表示されません。

HOME画面で画像の赤枠の場所をクリックすると最新版を取りに行く事ができます。

ご自身のバージョンを確認いただき赤枠内のリンクをクリック。

私はVersionが116.0.5845・・・のWindows64ビット版をダウンロードしました。

画像内で赤枠を使って指示しているURLをコピーしてブラウザのURLバーにペーストします。

Enter押下でダウンロードデータが用意されます。

(直ぐにダウンロード先を指示するダイアログ画面が出てきます)

デスクトップなどに落としてChromeドライバーを手に入れてください。

ご注意ください

一番左の列のBinaryでは「chromedriver」を選ぶ様にしましょう。(chromeではないです)

Chromeドライバーを上書保存

先程Seleniumbasicをインストールしました。その中にChromeのドライバーが居るのですが最新ではないです。

まずは最新のドライバーをインストールしましょう。

その後Seleniumbasicがデフォルトで持っているドライバーと入れ替えてください。

理由はSeleniumbasicに備えてあるドライバーがかなり古いものだからです。

インストールされたSeleniumの在り処(デフォルトの場合)

C:\Users\(ここは各ユーザー名)\AppData\Local\SeleniumBasic

ユーザー名がABCだったら・・・

C:\Users\ABC\AppData\Local\SeleniumBasic

2024年02月に以下画像を追加Seleniumをインストールした際の周辺データの画像です。

Chromeについては2024年02月にドライバーを入れ替えましたので最新ですがEdgeのドライバーは2015年のままです。

この様にSeleniumbasicをインストールした際はどのブラウザのドライバーも古いドライバーが備付けられています。

インストール後は各自が使用するブラウザに対して最新のドライバーを用意する必要があります。

インストール時に備え付けられているドライバーは仕様が古いので入れ替える必要があります。

具体的に何をやるかと言いますと単純に置き換えて(上書き)ください。

先程ダウンロードしたドライバーを上記フォルダにドラッグアンドドロップしましょう。

「上書きしますか?」というような問い合わせが出るので上書きしてください。これでドライバー関連の作業は終了です。

関連記事:Edgeで環境構築

EdgeでWebスクレイピングを検討されている方はEdge用のドライバーをインストールしましょう。

Chromeと違ってドライバーにひと手間加える必要があります。詳細はこちらをご覧ください。

VBEの参照設定で必要なライブラリを選択

やっとExcelの話になりましたね。お馴染みのVBEを開きます。

参照設定から Selenium Type Library を見つけてレ点を入れてからOKボタンを押下しましょう。

参照設定はライブラリの解説時に説明済です。文字に用意されたリンクで説明している場所にジャンプします。

あくまで希望ですがスクレイピングをやる人はスキルとして参照設定の意味は分かっていてほしいです。

これでやっと環境構築が完了しました。

ブラウザは定期的にバージョンアップします

各ブラウザは不定期でバージョンアップします。

その時にSeleniumbasicに備えたドライバーもインストールする必要があります。

ドライバーが最新じゃない時はVBAでコードを実行した際にエラーで止まります。「ドライバーが古いな」と気付きます。

このサイトのリンクを持っておきましょう

メンテナンス時は再度先程の設定と同じようにドライバーをダウンロードしましょう。

Seleniumbasicが持っているドライバーを上書きしてください。

この様に定期的にメンテナンスが必要です。環境を最新に保つ必要があります。

加えて見ていただいた様に非常に手間がかかります。

この記事のリンクを持ってください

ブラウザのバージョンアップ時のドライバーインストールに困らないです

記事を用意した私自身も実際にこのURLに来て都度ドライバーをインストールしています。

ドライバーのバージョンアップに合わせて作業をするので不定期になります。

そんな時にツールの置き場所(この記事)が決まっているのでメンテナンス時間を大幅に短縮できます。

簡単なコードの書き方を紹介

コードの書き方については別記事で紹介しています。

出来るだけ身近なケースを用意して簡単なコードでスクレイピングしていますのでご覧ください。

コードが書けるようになるVBA×Selenium×Cromeで簡単Webスク|Nameタグを使う

右クリックやダブルクリック、マウスホバーについて解説しています。

マウスの操作を再現【selenium×VBA】右クリックを含めたマウス操作を再現

私はXPathの方がスクレイピングしやすいです。理由は記事を見ていただく事で分かります。

更に簡単にコードを書く事ができるVBA×Chrome/Edgeでスクレイピング|XPathとは?|動画で解説

XPathを指定したうえでそのパスにある他の属性を取得する事もできます。

お役立てください【selenium×VBA】XPath指定でClass属性を取得

まとめ

私の印象では最初は環境構築7コード3という比率で環境構築の方が圧倒的に面倒で手間です。

  • Seleniumのダウンロードとインストール
  • ブラウザ毎にドライバーを用意してSeleniumの環境にセットする
  • ブラウザのバージョンアップの度にドライバーを再インストールする必要がある

慣れると環境構築2コード8ぐらの比率に変わってきます。

スクレイピングに慣れてくると色々なWeb画面と対峙する事になります。

複数のURLに対応する為にコードのアレンジが必要になります。

よってコードの事を考える比率が多くなり上記の様な比率に至ります。

簡単かつ最短距離でWebスクレイピングを解説してきました。難しかった人も居るはずです。

分かりにくい時は分かっている人に聞きましょう。以下リンクをご覧ください。

EnjoyExcel

タイトルとURLをコピーしました