Представьте себе следующий HTML:
<div class = "result-row">
<div class = "row">
<div class = "col-xs-5 result-score-padding">
<div class = "result-score" align = "right">Portugal</div>
</div>
<div class = "col-xs-2 result-score-padding" align = "center">
<div class = "result-score">2 - 2</div>
</div>
<div class = "col-xs-5 result-score-padding">
<div class = "result-score">Spain</div>
</div>
</div>
</div>
В приведенном ниже коде я использую getElementsByClassName в VBA для получения innerText из элементов:
Dim IE As New InternetExplorer
Dim doc As HTMLDocument
Dim i As Integer
Dim game As String
IE.navigate "https://www.example.com"
While IE.Busy Or IE.ReadyState <> 4: DoEvents: Wend
Set doc = IE.document
For i=0 To 2
game = Trim(doc.getElementsByClassName("result-score")(i).innerText)
Next i
Однако этот код не возвращает желаемый результат, поскольку он возвращает объектную переменную ошибки времени выполнения 91 или с неустановленной блочной переменной.
Я хочу извлечь "Португалия 2-2 Испания"
URL-адрес: http://www.stoiximan.gr/virtuals/
Вы должны иметь возможность вернуть Португалию, 2: 2, Испанию. Есть ли реальный URL-адрес, которым можно поделиться?
@Vityata, это не настоящий URL. фактический URL - stoiximan.gr/virtuals
Я не смог найти Portugal 2 - 2 Spain
на этой странице, используя URL-адрес, который вы указали в комментарии. Постарайтесь уточнить, как заполнить / найти этот вывод вручную @Spyros Psa. Спасибо.
@SIM имена команд меняются все время, это был просто пример, структура URL-адреса всегда такая же, как имя команды и счет.
Если вы показываете больше HTML, возможно, есть родительский фрейм / iframe, с которым нужно иметь дело, или вам может просто потребоваться более длительное ожидание, прежде чем пытаться получить доступ.
Вы перезаписывать ваша "игровая" переменная.
Тогда вы потеряете предыдущее содержимое.
Проблема не в том, что мой код впервые достигает переменной игры, он возвращает «ошибка времени выполнения 91 объектная переменная или с не установленной блочной переменной»
example.com
не имеетPortugal 2 - 2 Spain
.