Я хочу получить короткие строковые данные с веб-страницы, которые хотя и видны, но не могут быть выделены или скопированы с помощью курсора.При проверке кода я обнаружил, что нужная информация находится под свойством «value» элемента id, скопированного ниже «txtMaturity».Но при попытке получить «атрибут» с помощью VBA в Excel он получается пустым («»).
В качестве проверки, с той же процедурой, но с просто вызовом "innertext" (или нескольких других, которые я пробовал) в других частях страницы, результат в порядке, как и ожидалось ("txtMaturity"), поэтому считаю, что это не проблемакода VBA.
Есть ли другой способ вызова информации в свойствах кода?Очевидно, есть ограничение или скрытое свойство, которое ограничивает взаимодействие на живой странице.Учитывая, что я вижу информацию в коде, нужно сделать какой-то вызов.
Структура HTML:
<html xmlns= ”http://www.w3.org/1999/html” class>
<body data-spy=”scroll” data-target=”#nav-wrapper”>
<div class=”foo” >
<div class=”foo2”>
<input id="txtMaturity" class="form-control input-sm" type="text" readonly="true">
</div>
</div>
</body>
</html>
Процедура VBA (пожалуйста, не возражайте, если вложение избыточно, просто прокси реальногокод)
Sub getWeb()
Dim xhr As New MSXML2.XMLHTTP
Dim doc As New MSHTML.HTMLDocument
Dim table As HTMLHtmlElement
Set xhr = CreateObject("MSXML2.XMLHTTP")
With xhr
.Open "GET", url
.send
While .readyState <> 4: DoEvents: Wend
doc.body.innerHTML = .responseText
End With
Set table = doc.getElementsByClassName("foo")(0).children(0)
output = table.getElementsByClassName("form-control input-sm")(0).getAttribute("value")
End sub
вывод: ""
Веб: http://www.mae.com.ar/legales/emisiones/ONDetalle.aspx?id=1415
Заранее спасибо