|
Модераторы: mihanik |
|
AleksP79 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 28.4.2019 Репутация: нет Всего: нет |
Добрый день!
В 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 |
|||
|
||||
Akina |
|
|||
Советчик Профиль Группа: Модератор Сообщений: 20572 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 453 |
А как идентифицируется нужный тег - по имени класса? если да - разве нет у выбранного div свойства, возвращающего это имя, какого-нибудь getElementsByTagName("div")(номер элемента).ClassName? Если есть - ну тупо перебирай все, ищи нужное имя, как нашёл - бери свой текст...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
astin082020 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.9.2020 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
m1st |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 73 Регистрация: 1.11.2006 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
Правила форума "Программирование, связанное с MS Office" | |
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще!
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |