Войти

Показать полную графическую версию : Доступ к элементу div страницы на html посредством VBA


AleksP
19-03-2023, 16:09
Добрый день!

В html коде есть элемент div, к которому необходимо получить доступ посредством VBA
<div id="tender-card-content">
<div id="report-script" class="tender-card-title">
<h1 class="tct-tender-number">
Закупка <span class="copy-script tender-number-copy">32312204305</span>
</h1>
<div class="tct-tender-text">Содержимое, которое необходимо скопировать с html страницы через VBA</div>
...

Получается только через getElementsByTagName("div")(номер элемента).innerText, но номер элемента div может меняться динамически и такой вариант не подходит.
Привожу код, в котором попробовал разные варианты доступа с указанием сообщения о ошибке в комментариях.

Sub test()

sURL = "https://synapsenet.ru/zakupki/fz223/32312204305%231--sanktpeterburg-vipolnenie-rabot-po-obsledovaniyu-stroitelnih"

Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
With oXMLHTTP
.Open "GET", sURL, False
.send
txt = .responseText

Set pDoc = CreateObject("HTMLFile")
pDoc.body.innerHTML = txt

.Open "GET", sURL, False: .send
getHTTP = StrConv(.responseBody, vbUnicode)

MsgBox pDoc.getElementsByTagName("div")(номер элемента).innerText
'Работает.'

MsgBox getHTTP.getElementsByTagName("div")(номер элемента).innerText
'Сообщение об ошибке Object required.'

pDoc.getElementsByClassName ("tct-tender-text")
'Сообщение об ошибке Object doesn't support this property or method.'

getHTTP.getElementsByClassName ("tct-tender-text")
'Сообщение об ошибке Object required.'

pDoc.querySelectorAll ("tct-tender-text")
'Сообщение об ошибке Object doesn't support this property or method.'

getHTTP.querySelectorAll ("tct-tender-text")
'Сообщение об ошибке Object required.'

End With

Set oXMLHTTP = Nothing

End Sub

Как нужно исправить код, чтобы получить доступ к нужному элементу?




© OSzone.net 2001-2012