Я не могу получить информацию на веб-странице - PullRequest
1 голос
/ 10 июля 2019

принцип: загрузите страницу и восстановите информацию, содержащуюся в теге

вот исходный код:

    <div class="w3-row w3-white w3-padding w3-hide-medium w3-hide-small" style="margin-top:5px;">

        <div class="w3-col s5 notranslate" style="margin:4px 0 6px 0">
            <a class="w3schools-logo" href="//www.w3schools.com">w3schools</a>
        </div>
  </div>

но при выполнении моего кода я вижу эту ошибку: свойство или метод не поддерживаются этим объектом

Private Function CreerNavigateur()
Dim IE As Object
Dim oDoc As Object
Dim Htable, maTable, hyper As Object
Dim text As String

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "www.w3schools.com"
WaitIE IE
    ' Page chargée, on continue
   Set oDoc = IE.Document
   Set Htable = oDoc.getElementsByTagName("div")(1)
   Set maTable = Htable.getElementsByTagName("a")
   MsgBox maTable
   Set hyper = maTable.getElementsByClassName("w3schools-logo")
   text = hyper.innerText
   MsgBox text
 IE.Quit
    'On libère les variables
    Set IE = Nothing
    Set IEDoc = Nothing
End Function

1 Ответ

0 голосов
/ 10 июля 2019

Ошибка, которую вы получаете, состоит в том, что Htable.getElementsByTagName возвращает коллекцию элементов, и у этой коллекции нет метода maTable.getElementsByClassName.Вам нужно сослаться на первый элемент в коллекции (используя maTable(0)), затем вы можете получить доступ к href и innertext следующим образом:

Private Function CreerNavigateur()
Dim IE As Object
Dim oDoc As Object
Dim Htable, maTable, hyper As Object
Dim text As String

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "www.w3schools.com"
WaitIE IE
    ' Page chargée, on continue
    Set oDoc = IE.Document
    Set Htable = oDoc.getElementsByTagName("div")(1)
    MsgBox Htable.innerhtml
    Set maTable = Htable.getElementsByTagName("a")
    MsgBox maTable(0).href
    MsgBox maTable(0).innertext
 IE.Quit
    'On libère les variables
    Set IE = Nothing
    Set IEDoc = Nothing
End Function
...