VBAスクレイピングについて勉強しており、ご教授頂けましたら幸いです。
ページ内の情報収集にて、
ループ内で特定classの場合(boxBの時)、
処理を分けたいのですが、わからない状態に陥ってしまいました。
ループ内で複数クラスがある時の特定クラスの処理を教えて頂きたく思い、投稿いたしました。
何卒よろしくお願いいたします。
◎HTML
HTML
<main id="main"> <div class="boxA"> ~中身~ </div> <div class="boxA"> ~中身~ </div> <div class="boxA boxB"> ~中身~ </div> <div class="boxA boxB boxC"> ~中身~ </div> .... </main>
◎コード(ちょっとコード抜粋したのでこのままだとエラーでちゃいます。すいません。)
VBA
Sub main() Dim driver As New Selenium.WebDriver Const Fpath As String = "//*[@id='main']/div[" Dim boxcount As Long: boxcount = driver.FindElementsByClass("boxA").Count Dim bcnt As Long Dim excel_column As Long Dim excel_ws As Worksheet: Set excel_ws = Worksheets("Sheet2") With excel_ws excel_column = excel_ws.Cells(Rows.Count, 1).End(xlUp).Row - 1 For bcnt = 1 To boxcount .Cells(excel_column + bcnt + 1, 1) = bcnt 'ここがわからないです <-- If driver.FindElementByXPath(Fpath & bcnt & "]").Attribute("Class") = "boxB" Then .Cells(excel_column + bcnt + 1, 2) = "boxB" Else .Cells(excel_column + bcnt + 1, 2) = "boxA" End If 'ここがわからないです --> Next bcnt End With driver.Quit End Sub
まだ回答がついていません
会員登録して回答してみよう