Вы можете использовать комбинацию селекторов CSS, чтобы получить элементы.Если вы предоставите фактический HTML-код, а не изображение, вам будет проще протестировать и определить наилучшую комбинацию.Селектор применяется с помощью метода querySelectorAll
для возврата nodeList
всех соответствующих элементов.Вы пересекаете .Length
из nodeList
, чтобы получить доступ к элементам по индексу от 0
до .Length-1
.
VBA:
Dim aNodeList As Object, i As Long
Set aNodeList = ie.document.querySelectorAll("._1oem[href]")
For i = 0 To aNodeList.Length-1
Activesheet.Cells(i + 2,4) = aNodeList.item(i)
Next
Комбинация селектора CSS - ._1oem[href]
, который выбирает href
атрибуты элементов с классом _1oem
."."
- это селектор класса, а []
- селектор атрибута.Это быстрый и надежный метод.
Выше предполагается, что нет родительских тегов form/frame/iframe
для согласования.
Альтернативный селектор, который соответствует двум атрибутам,а не класс будет:
html.querySelectorAll("[data-testid='marketplace_feed_item'][href]")
Полный пример:
Option Explicit
Public Sub GetInfo()
Dim IE As New InternetExplorer
With IE
.Visible = True
.navigate "https://www.facebook.com/marketplace/vancouver/entertainment"
While .Busy Or .readyState < 4: DoEvents: Wend
Dim aNodeList As Object, i As Long
Set aNodeList = IE.document.querySelectorAll("._1oem[href]")
For i = 0 To aNodeList.Length - 1
ActiveSheet.Cells(i + 2, 4) = aNodeList.item(i)
Next
'Quit '<== Remember to quit application
End With
End Sub