Pobieranie wartości z „script” ze strony www

W jednym z projektów musiałem pobrać różne wartości ze strony www. O ile z <div> i jego elementami jak <h5>, czy <p> nie miałem problemów, tak <script> nie mogłem odczytać w VBA.

Gdzieś tam wyczytałem, że VBA nie odczyta <script>, ale czy to prawda nie wiem. W każdym bądź razie znalazłem rozwiązanie pobrania interesującego mnie elementu z <script>. Może nie jest to za zbyt efektywne rozwiązanie, ale działa.

Oto przykład HTML:

Moim zdaniem jest pobranie ścieżki pliku z rozszerzeniem .abc.

Przykład VBA:

Private Sub GetNeededScriptValueFromHtml()
' Needed references:
' Microsoft HTML Object Library

Dim htmlEle1 As IHTMLElement
Dim HTMLDoc As HTMLDocument
Dim url As String

url = "WebPagePath.com"

Set HTMLDoc = New HTMLDocument

' Open connection
' https://stackoverflow.com/questions/41558714/pull-value-from-website-html-div-class-using-excel-vba
With CreateObject("WINHTTP.WinHTTPRequest.5.1")
    .Open "GET", url, False
    .send
    HTMLDoc.body.innerHTML = .responseText
End With

' Get needed value from <script>
Debug.Print Mid(HTMLDoc.body.innerHTML, (InStr(HTMLDoc.body.innerHTML, "abc") + 6), _
InStr(HTMLDoc.body.innerHTML, ".abc") - InStr(HTMLDoc.body.innerHTML, "abc"))

End Sub

HTMLDoc.body.innerHTML to cały pobrany HTML. Musiałem znaleźć interesujący mnie fragment za pomocą funkcji MID. Funkcja InStr szuka określonego słowa w stringu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.