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

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。