2022年、Internet Explorerのサポート終了→SeleniumBasicに置き換えた開発を進めましたが、
SeleniumBasicのインストールが厳しい環境のユーザー様も多く存在しました。
その為、自前でWebDriverを動かす「WebDriverVBA」の開発を進めました。
ある程度動くよう(SeleniumBasicに比べたらまだまだですが)になったため、
同じようにお困りのユーザーの方に、ソフトライセンス販売の形で提供致します。
WebDriverVBAを使用した際のサンプルコードを以下に記載します。
ブラウザの読み込み待ちのサンプルコード
今回はWebDriverVBA操作で必要な、待機処理です。
指定したページへ遷移しても、Webページの読込前に次の処理をすると、エラー発生してしまいます。
IE自動操作とは異なり、WebDriverVBAは画面が表示されるまで、自動で待ってくれます。
そのため、読み込み待ちはあまり気にする必要はありませんが、ページによっては明示してWaitすべきです。
■待った方がよいページ
・JavaScriptが仕込まれているページ
・iFrameが仕込まれているページ
→ページ全体は読み込みできたがJavaScriptの処理が追い付かない。
・JavaScriptが仕込まれているページ
・iFrameが仕込まれているページ
→ページ全体は読み込みできたがJavaScriptの処理が追い付かない。
Public Sub wait_sample() Dim driver As webDriverVBA Set driver = New webDriverVBA '■ドライバーを起動 Call driver.Start(vcChrome) '■目的のサイトへ移動する Call driver.Navigate("https://vba-create.jp/") '■3,000ミリ秒(3秒)待つ Call driver.Wait(3000) End Sub
注意点
WebDriverVBAのスクレイピングは100%動くものと考えて、マクロを組む概念は捨てましょう。
エラーとうまく付き合い、対処するように考えましょう。
上記でうまくいかない場合はWebページに指定要素が存在するかチェックして、
存在しなければWait処理を追加してLoopさせればよいと考えます。
- WebDriverVBAまとめページ(ページが増えれば公開します。)
WebDriverVBAについて
Excel VBAでSeleniumBasicを使わずにEdge/Chromeでスクレイピングするためのツールです。
SeleniumBasicがインストールできない環境の方にもスクレイピングをお助けします。
料金などについてはこちらからお問い合わせくださいませ。
コメント