Я хочу извлечь данные с веб-сайта , используя VBA. Мне удалось извлечь некоторую часть вывода, но это не полный. Я хочу выбрать атрибут со значением data-division-id
:
<div class="ui-product-card" comparison-checked="false"
shopping-list-checked="false" data-product-web-saleable="true"
data-product-url="/product/tryapka-dlya-pola-grifon-50h70-sm-93724162/"
data-product-category-id="meshki-stroitelnye-201709_Opus_Family"
data-product-price="35.90" data-sub-category-id="10" data-category-id="40"
data-product-material="Хлопок" data-product-gamma="A" data-unit="NIU"
data-division-id="11" data-source="Pim" data-product-color="белый"
data-product-stock-value="11185" data-product-has-linked-how-tos="0"
data-product-location="SearchPage" data-product-id="93724162"
data-product-dimension65="STD" data-product-weight="0.1"
data-rel="js-cat-product-item" data-product-brand="Grifon" data-place="plp"
data-element-id="ui-product-card" data-ga-root="data-ga-root"
data-sub-division-id="1150" data-product-name="Тряпка для пола Grifon 50х70 см">
Я не могу найти элемент и выбрать его. Я попробовал несколько подходов, о которых мне известно, но мои последние попытки приведены ниже:
Sub test()
Dim http As New XMLHTTP60, html As New HTMLDocument
Dim topic As HTMLHtmlElement
With http
.Open "GET", "https://voronezh.leroymerlin.ru/catalogue/meshki-stroitelnye/?display=90&sortby=1", False
Do: DoEvents: Loop Until .readyState = 4
html.body.innerHTML = .responseText
End With
For Each topic In html.getElementsByClassName("ui-product-card")
With topic.getElementsByClassName("product-name")
If .Length Then x = x + 1: Cells(x, 2) = .item(0).innerText
End With
With topic.getElementsByClassName("price-section-inner")
If .Length Then Cells(x, 3) = .item(0).innerText
End With
'??? With topic.getElementsByTagName("[data-category-id]")
'??? If .Length Then Cells(x, 1) = .item(0).innerText
End With
Next topic
End Sub
Мне нужна помощь в этом. Спасибо