エクセル関数やVBAのコードを自動で生成

GPTExcelの使い方はこちら

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

スポンサーリンク

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

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

Web情報を取得する方法の1つにWebスクレイピングがあります。

数年前まではWebスクレイピングの主要ブラウザはIEでした。

しかしMicrosoftさんは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 Releases105.0.・・・をダウンロードしました。

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

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

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

時系列で履歴を残すようにしました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Chromeドライバーを上書保存

先程Seleniumbasicをインストールしました。

その中にChromeのドライバーが居るのですが最新ではないです。

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

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

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

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

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

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

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

記事を書いているのは2022年10月です。以下画像はSeleniumをインストールした際の周辺データです。

Chromeについては既に数ヵ月前にドライバーを入れ替えましたがEdgeのドライバーは2015年です。

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

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

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

先程ダウンロードしたドライバーを上記フォルダにドラッグアンドドロップしてください。

すると「上書きしますか?」というような問い合わせが出るので上書きしてください。

関連記事:Edgeで環境構築

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

Chromeと違ってドライバーにひと手間加える必要があります。

詳細はこちらをご覧ください。

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

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

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

参照設定が何か?などは省略します。

多分スクレイピングをやる人はスキルとしてすでに参照設定の意味は分かっていると思います。

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

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

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

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

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

ドライバーが古いな」と気付きます。

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

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

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

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

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

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

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

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

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

そんな時にツールの置き場所(この記事)が決まっているのでメンテナンスがかなり楽です。

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

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

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

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

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

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

まとめ

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

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

この様にイニシャルもランニングも大変です。

しかし覚えてしまえば・・・という感じでしょうか。今では苦になりません。

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

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

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

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

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

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

EnjoyExcel

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