Извлечь указанный c текст из проводника Inte rnet - PullRequest
0 голосов
/ 15 марта 2020

У меня есть этот Html и коды VBA, как показано ниже, я пытаюсь использовать Excel VBA для извлечения только названия Verizon Wireless, поэтому я использовал следующий код Excel VBA. Но когда я запускаю его, он возвращает «Type: Mobile». Я предполагаю, что это потому, что имя класса, которое я использовал, является общим для обоих детей в этом разделе, поэтому мои вопросы: есть ли способ просто извлечь имя оператора? ?

Спасибо

-------HTML CODE-------

<div class="left-phone-info">
          <h1>(405) 482-3431</h1>
          <p class="subtext grey phone-details"><strong>Type:</strong> Mobile</p>
            <p class="subtext grey phone-details">
                <strong>Carrier:</strong> Verizon Wireless
            </p>
        </div>

------VBA CODE-------

Sub get_carrier()
Dim ie As InternetExplorer
Dim ht As HTMLDocument
Dim num As String

num = Range("B1").Value
Set ie = New InternetExplorer
ie.navigate ("https://www.whitepages.com/phone/1-405-482-3431")
ie.Visible = True

Do
DoEvents
Loop Until ie.readyState = 4
Application.Wait Now + TimeSerial(0, 0, 5)


Set ht = ie.document
Set tags = ht.getElementsByClassName("subtext grey phone-details")
For Each tagx In tags
            MsgBox tagx.innerText
        Exit For
    Next

End Sub ```

1 Ответ

0 голосов
/ 15 марта 2020

getElementsByClassName должен возвращать коллекцию. В вашем примере это будет коллекция из 2 элементов.

Попробуйте получить доступ ко второму элементу по индексу:

Set tags = ht.getElementsByClassName("subtext grey phone-details")(1)

...