Я не могу понять, как получить элементы по имени класса. У меня есть следующий тег. Я могу сделать getelementsbytagname, выполнив ("div") и перечислив его номер элемента, но в этом случае я хотел перейти к элементу имени класса 2. На веб-странице есть тег.
<div class="column">
Projected Delivery Date:
</div>
<div class="column">
11/28/2017
</div>
Я пытаюсь получить дату там. Это код, который я использовал для этого. Он не работает ни с группой «partner_info», ни с «колонкой». Я перебираю все теги, и он, кажется, не поднимает их.
Private Function TrackNEW(trackingNumber As String) As String
Dim xml As Object
Dim tempString As String
Dim htmlDoc As Object ' MSHTML.HTMLDocument
Dim htmlBody As Object ' MSHTML.htmlBody
Dim anchors As Object ' MSHTML.IHTMLElementCollection
Dim anchor As Object ' MSHTML.IHTMLElement
Dim dda As Object ' MSHTML.IHTMLElementCollection
Dim ddb As Object
Dim ddc As Object
Dim ddd As Object
Dim span As Object
Dim div As Object ' MSHTML.IHTMLElement
Set xml = GetMSXML
If xml Is Nothing Then ' cannot start MSXML 6.0
TrackNEW = MSXML_ERROR
Exit Function
End If
tempString = GetResponse(xml, HTTP_GET, NEWUrl & trackingNumber, False)
If Len(tempString) = 0 Then
TrackNEW = ERROR_MSG
Exit Function
End If
Set htmlDoc = CreateHTMLDoc
If htmlDoc Is Nothing Then ' cannot reference MSHTML object library
TrackNEW = MSHTML_ERROR
Exit Function
End If
Set htmlBody = htmlDoc.body
htmlBody.innerHtml = tempString
On Error Resume Next
Set dda = htmlDoc.getElementsByTagName("span")
Set ddb = htmlDoc.getElementsByTagName("span")
Set ddc = htmlDoc.getElementsByTagName("span")
Set ddd = htmlDoc.getElementsByClassName("column")
For Each Strg4 In ddd
For ItemNumber4 = 1 To 600
Strg4 = ddd.Item(ItemNumber4).innerText
If InStr(Strg4, "Projected Delivery Date:") >= 1 Then
Strg4 = ddd.Item(ItemNumber4).innerText
GoTo Line8
Else
End If
Next ItemNumber4
Next Strg4
MsgBox "Bad"
Exit Function
Line8:
TrackNEW = Strg4
Exit Function
Если кто-нибудь может объяснить, как исправить мой код, чтобы он подбирал дату? Опять же, я мог бы сделать getelementsbytagname для «div», но я хочу, чтобы это было по имени класса, если это возможно. Я использую VBA в Excel для этого. Это не Java-скрипт