tl; dr;
Итак, это беспокоило меня до тех пор, пока ....... Я подумал, что если ссылки в HTML будут появляться по-разному при направлении кpage.
Таким образом, хотя технически это не первые 5 (поскольку стилизация страницы не соответствует элементу номер 5; в нем отсутствует тег h3), это выглядит так, как если бы вы смотрели этот список в комментариях.по окончательному полученному URL.
Комбинация селекторов CSS:
Я использую комбинацию селекторов CSS для нацеливания на страницу #content_left h3 [href]
.При этом выполняется поиск элементов с атрибутом href
внутри родительского элемента h3
внутри элемента с идентификатором content_left
.
. Так выглядит запрос CSS для поискового запроса red
.(Образец предоставлен)

VBA:
Вы применяете комбинацию селектора CSS с помощьюquerySelectorAll
метод document
, так как вы ожидаете более одного сопоставленного элемента, который возвращает статический nodeList
.Вы зацикливаете .Length
возвращенных nodeList
для доступа к элементам по индексу.
Option Explicit
Public Sub GettingURL()
Dim c As Long, u As Long
Application.ScreenUpdating = False
With CreateObject("InternetExplorer.Application")
.Visible = True
.navigate "https://baidu.com/s?wd=" & Sheets("Data").Cells(1, 2).Text
While .Busy Or .readyState < 4: DoEvents: Wend
With .document.querySelectorAll("#content_left h3 [href]")
c = 3
For u = 0 To 4 ' Application.Min(8, .Length - 1)
Sheets("Data").Cells(c, 1) = .Item(u)
c = c + 1
Next
End With
.Quit
End With
Application.ScreenUpdating = True
End Sub
Результаты:
Сравнение полученных URL-адресов и того, чтов конечном итоге они выглядят так: если вы введете их на панели навигации, вы получите следующее:
