Доступ к элементу div страницы на html посредством VBA Добрый день! В html коде есть элемент div, к которому необходимо получить доступ посредством VBA [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>
[/vba]... Получается только через getElementsByTagName("div")(номер элемента).innerText, но номер элемента div может меняться динамически и такой вариант не подходит. Привожу код, в котором попробовал разные варианты доступа с указанием сообщения о ошибке в комментариях. [vba]
Код
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
[/vba] Как нужно исправить код, чтобы получить доступ к нужному элементу?
Доступ к элементу div страницы на html посредством VBA Добрый день! В html коде есть элемент div, к которому необходимо получить доступ посредством VBA [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>
[/vba]... Получается только через getElementsByTagName("div")(номер элемента).innerText, но номер элемента div может меняться динамически и такой вариант не подходит. Привожу код, в котором попробовал разные варианты доступа с указанием сообщения о ошибке в комментариях. [vba]
Код
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
[/vba] Как нужно исправить код, чтобы получить доступ к нужному элементу?AleksP
Сообщение отредактировал Serge_007 - Понедельник, 20.03.2023, 08:50