У меня есть следующий код, который работает, и тянет все ссылки для списков на веб-странице ниже. Сейчас я хочу расширить это, чтобы вытащить следующую страницу результатов (до n). Я попытался сделать это (вторая половина этого кода), но ничего не отображается.
ПРИМЕЧАНИЕ. В этом примере кода я пытался разместить вторую страницу ссылок в столбце B, но в идеальном мире я хотел бы добавить ссылки внизу результатов страницы 1 (в Колонка А).
ОБНОВЛЕНИЕ: Этот код теперь перемещается к каждому результату страницы, но он вставляет те же ссылки в столбце А, что и В, что и в С и т. Д. Я не уверен, как это происходит, поскольку я могу наблюдать, как браузер меняет URL-адреса в процессе работы.
Кроме того, если у вас есть более эффективные способы сделать это (вместо того, чтобы копировать / вставлять эти 10x, чтобы получить количество результатов, которое я ищу), пожалуйста, дайте мне знать!
Option Explicit
Public Sub GetLinks()
Dim ie As New InternetExplorer, ws As Worksheet, t As Date
Dim k As Integer
Const MAX_WAIT_SEC As Long = 10
Set ws = ThisWorkbook.Worksheets("Sheet1")
With ie
.Visible = True
k = 0
Do While k < 10
.Navigate2 "https://www.ebay.com/sch/i.html?_from=R40&_nkw=iPhone&_sacat=0&_ipg=200&_pgn=" & k
While .Busy Or .readyState < 4: DoEvents: Wend
Dim Links As Object, i As Long, count As Long
t = Timer
Do
On Error Resume Next
Set Links = .Document.querySelectorAll(".s-item__link[href]")
count = Links.Length
On Error GoTo 0
If Timer - t > MAX_WAIT_SEC Then Exit Do
Loop While count = 0
For i = 0 To Links.Length - 1
ws.Cells(i + 1, k + 1) = Links.item(i)
Next
k = k + 1
Loop
.Quit
End With
End Sub