Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2023, 14:11   #1
AleksP79
 
Регистрация: 27.04.2019
Сообщений: 6
По умолчанию Доступ к элементу div страницы на html посредством VBA

Добрый день!

В 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

Как нужно исправить код, чтобы получить доступ к нужному элементу?
AleksP79 вне форума Ответить с цитированием
Старый 20.03.2023, 08:52   #2
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Ответ здесь
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к элементу iFrame WorldMaster JavaScript, Ajax 2 26.06.2018 11:33
Получить доступ к элементу Label shvedoff C# (си шарп) 1 22.04.2017 10:06
Доступ к элементу Select НастяНастя Помощь студентам 1 20.05.2014 20:20
Доступ к элементу. updaite C# (си шарп) 2 14.11.2013 15:19
Доступ к элементу управления EdNovice Microsoft Office Excel 1 19.01.2011 11:38