Я пытаюсь сделать макрос, чтобы очистить таблицу фэнтезийных футбольных проекций от ESPN. У меня есть код для работы с очисткой данных, но я не смог понять, как выполнять итерацию через различные версии URL-адреса, которые мне нужны для захвата данных из ничего, кроме первой страницы.Looping Web Scraping VBA Macro
URL-адрес является: "http://games.espn.com/ffl/tools/projections?&seasonTotals=true&seasonId=2016&slotCategoryId=0&startIndex=0"
мне нужно перебирать значения для "slotCategoryID = 0" и "STARTINDEX = 0". Каждый раз, загружая веб-страницу, копируя данные и добавляя их в таблицу в excel.
slotCategoryID представляет позицию игрока, и должны перебирать значения 0,2,4,6,16, & 17.
STARTINDEX просто продвигает страницу. Это 0 для стр. 1, 40 для стр. 2, 80 для стр. 3 и т. Д.
Пожалуйста, помогите!
Вот код, который я до сих пор, который работает, чтобы скопировать данные таблицы сразу:
Sub extractTablesData()
'we define the essential variables
Dim IE As Object
Dim r As Integer, c As Integer, t As Integer, pos As Integer
Dim elemCollection As Object
'----
'add the "Microsoft Internet Controls" reference in your VBA Project indirectly
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.navigate "http://games.espn.com/ffl/tools/projections?&seasonTotals=true&seasonId=2016&slotCategoryId=0&startIndex=0"
' we ensure that the web page downloads completely before we fill the form automatically
While IE.ReadyState <> 4
DoEvents
Wend
' again ensuring that the web page loads completely before we start scraping data
Do While IE.busy: DoEvents: Loop
Set elemCollection = IE.Document.getElementsByTagName("TABLE")
For t = 0 To (elemCollection.Length - 1)
For r = 1 To (elemCollection(t).Rows.Length - 1)
For c = 0 To (elemCollection(t).Rows(r).Cells.Length - 1)
ThisWorkbook.Worksheets(1).Cells(r, c + 1) = elemCollection(t).Rows(r).Cells(c).innerText
Next c
Next r
Next t
End With
' cleaning up memory
Set IE = Nothing
'----
End Sub
Вы сказали это: вам нужно итератировать. Так и сделайте это. Обновляйте строку 'navigate' с каждой итерацией. Или еще лучше, создайте подкаталог 'extractTablesData', чтобы вы могли передать любой URL-адрес, а затем выполнить итерацию с подкаталога. – Marc