【Excel/VBA/Selenium】Webページに指定要素が存在するかチェックする

はじめに

みなさんこんにちは。

ECサイトなど商品の在庫状況によって、

サイト内の指定要素が変更される場合があります。

そのようなサイトに遭遇した際、

スクレイピングする際に、webページに指定要素が存在するかをチェックすなければエラーになりますので、

本日はその対処法について書いていきます。

こんな人たち記事を読んでもらいたい!

・Webスクレイピング:初級者~中級者のかた

・VBAプログラミング:中級者~上級者のかた

・Seleniumに興味を持ち始めたかた

・ページ読み込みの遅いWebサイトをスクレイピングしようとしているかた

Webページに指定要素が存在するかチェックするサンプルコード

コードは以下の通りになります。そのままコピペしてご利用いただけます。

Public Sub 指定要素の存在チェック()
    Dim driver As New Selenium.WebDriver
    Dim myBy As New By

    Dim sURL As String
  sURL = "スクレイピングしたいサイトのURLを入力"
    driver.Start "chrome"
    driver.Get sURL
    '■要素が存在していればTrue/存在しなければFalse
    Debug.Print driver.IsElementPresent(myBy.ID("対象要素のIDを入力"))
    '■要素が存在してれば処理を行う
    If driver.IsElementPresent(myBy.ID("対象要素のIDを入力")) Then
        '存在していた場合の処理
    Else
        '存在していない場合の処理
    End If
    '■上記はidの場合です。id要素以外は以下参照。
    Debug.Print driver.IsElementPresent(myBy.Class("xxxxx")) 'Class
    Debug.Print driver.IsElementPresent(myBy.Name("xxxxx")) 'Name
    Debug.Print driver.IsElementPresent(myBy.Tag("xxxxx")) 'Tag
    Debug.Print driver.IsElementPresent(myBy.xpath("xxxxx")) 'xPath
End Sub

最後に

VBA のスクレイピングの情報は結構少ないんですよね。

自身で実装するときに、調べものでドハマりすることが多いです。

ご興味がある方はこちら!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA