Excel VBAとIEでウェブページの情報を取得する(スクレイピング)

MS社から出ているウェブブラウザはEdgeが推奨されており、IEはもうオワコンになろうとしています。IEに対応していないサイトすらもあります。

ただ、Excel VBAを使ってスクレイピングするにはIEを使わざるを得ないのが現状なので、使い方を覚えておきましょう。IEが完全にサポート終了したら次はこれがEdgeに置き換わるだけでしょうし。

参考にしたのは[VBA]30分あればできるVBAスクレイピングです。

スポンサーリンク

使い方

参考サイトはヨドバシの会員ページを例にとっていたので、ちょうどいいやと思い僕もヨドバシを例につくってみます。

会員情報が入ってしまっていたのでメールアドレスが入った状態になっていましたが、ここに任意のメールアドレスを入力するところもやります。メールアドレスはauthenticateDO.authKeyと命名されたフォームでした。

パスワード(こっちはauthenticateDO.passwordというフォーム)も入れて、メンバーズページへログインします。このログインボタンはクリックするとJavaScriptによるプログラムlogin(this)が走ります。

ログイン後の画面です。スクショの右下あたりに「ようこそ!○○○○様」と会員の名前が表示されますので、ここを拾いにいきます。ここはmemberNameというクラス名でした。

注意すべきは、ログインボタンを押してマイページに遷移するのに結構時間を要すること。ページの読み込みが終わってから取得しないといけません。VBAでIEを操作してJavaScriptで動作するWebページをスクレイピングを参考にし、読み込み時間を数秒確保しました。

結果としてExcel側に表示することができましたとさ。

VBA

コメント

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