I wrote some code to extract the information from a table, but it takes an extremely long time.
The table is in the format of a calendar. I need the information on an Excel sheet with column 1 as the day number and column 2 as the accommodation type. On the accommodation type, I only want the “Camp” types and the number of available units to show. I’m sure there will be a better way to loop through the table. Any help will be appreciated.
Here is my code:
Dim driver As New WebDriver, i As Integer, mysheet As Worksheet Dim ele As WebElement Set driver = New EdgeDriver Application.ScreenUpdating = False driver.Start "edge" driver.Get "http://www.sanparks.org/reservations/accommodation/calendar-month/park/26/camp/41/date/2022-07-01" Application.Wait Now + TimeValue("00:00:05") Set mysheet = Sheets("Sheet1") i = 7 eRow = Sheet1.Cells(Rows.Count, 3).End(xlUp).Offset(7, 0).Row For Each ele In driver.FindElementsByClass("day") If ele.FindElementByCss("span").Text <> "" Then mysheet.Cells(i, 2).Value = ele.FindElementByCss("span").Text On Error Resume Next If Mid(ele.FindElementByClass("bold-name").Text, 1, 4) = "Camp" Then 'AccommodationType mysheet.Cells(i, 3).Value = ele.FindElementByClass("bold-name").Text & " " & ele.FindElementByClass("unit-numbers").Text End If On Error GoTo 0 i = i + 1 End If Next ele