Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Доступ к элементу div страницы на html посредством VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Доступ к элементу div страницы на html посредством VBA (Макросы/Sub)
Доступ к элементу div страницы на html посредством VBA
AleksP Дата: Воскресенье, 19.03.2023, 14:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 20% ±

Доступ к элементу 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] Как нужно исправить код, чтобы получить доступ к нужному элементу?


Сообщение отредактировал Serge_007 - Понедельник, 20.03.2023, 08:50
 
Ответить
СообщениеДоступ к элементу 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
Дата добавления - 19.03.2023 в 14:05
doober Дата: Воскресенье, 19.03.2023, 21:11 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 945
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Используйте раннее связывание.

К сообщению приложен файл: 2920541.png (97.4 Kb) · 6398516.png (51.1 Kb)




Сообщение отредактировал doober - Воскресенье, 19.03.2023, 21:13
 
Ответить
СообщениеИспользуйте раннее связывание.


Автор - doober
Дата добавления - 19.03.2023 в 21:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Доступ к элементу div страницы на html посредством VBA (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!