Я хотел бы извлечь информацию с веб-страницы. У меня есть следующий пример.
<div class="class1">
<div class="class2">Address</div>
address1<br>
address2<br>
Zipcode, City, Country <br>
<div class="class2">phone</div>
+1 352 555 555 <br>
<div class="class2">Mobile</div >
0563 555 31 56
<div class="class2">Email</div>
[email protected]<br>
</div>
Я хотел бы получить следующее:
У меня есть следующий код:
Sub GetData()
Dim oHtml As HTMLDocument
Dim oElement As Object
Dim i As Integer
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.example.com", False
.send
oHtml.body.innerHTML = .responseText
End With
i = 1
For Each oElement In oHtml.getElementsByClassName("class1")
Debug.Print i, oElement.outerText
i = i + 1
Next oElement
End Sub
Любая помощь ценится!
Спасибо, Тина
Быстро и грязно, но работает:
Sub GetData()
Dim oHtml As HTMLDocument
Dim resultText As String
Set oHtml = New HTMLDocument
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
.Open "GET", "http://www.example.com", False
.send
oHtml.body.innerHTML = .responseText
End With
'get inner text of div
resultText = oHtml.getElementsByClassName("class1")(0).innerText
'delete headers
resultText = Replace(resultText, "Address", "")
resultText = Replace(resultText, "phone", "")
resultText = Replace(resultText, "Mobile", "")
resultText = Replace(resultText, "Email", "")
'delete linebreaks
resultText = Replace(resultText, vbCrLf & vbCrLf, vbCrLf)
resultText = Replace(resultText, vbCrLf & vbCrLf, vbCrLf)
Debug.Print resultText
End Sub