【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 のスクレイピングの情報は結構少ないんですよね。
自身で実装するときに、調べものでドハマりすることが多いです。