Извлечение значений JSON из веб-страницы с использованием MSXML2.XMLHTTP - PullRequest
0 голосов
/ 08 мая 2019

В настоящее время я могу извлечь значения из веб-страницы, но столкнулся с проблемой извлечения значений JSON.

Я использую следующий код для извлечения других значений.

On Error Resume Next
Set http = CreateObject("MSXML2.XMLHTTP")
    http.Open "GET", url1234, False
    http.Send
    html.body.innerHTML = http.ResponseText
    brand = html.body.innerText
    'MsgBox (brand)

Приведенный выше код не извлекает следующие значения этого URL

"" : {"0":"B0037RYT96","1":"B0152VYOQ2","2":"B0152WOT70","3":"B003W0NYKS","4":"B0152WOT8Y","5":"B00C2O7M1M","6":"B0037RMS6W","7":"B0037RMI0S","8":"B0152VYPXY"},

1 Ответ

0 голосов
/ 08 мая 2019

Я ничего не вижу в вашем коде, который пытается извлечь это.

Вы можете использовать регулярное выражение, чтобы указать соответствующий шаблон для извлечения этой строки. Ниже строка, которую вы ищете, хранится в переменной r.

EDIT:

Если вы изменили требуемую строку, вы можете изменить регулярное выражение на:

\"dimensionToAsinMap\" :(.*)[^\r\n].*

Попробуйте здесь

Прежний ответ:

Попробуйте регулярное выражение здесь

Option Explicit
Public Sub GetData()
    Dim s As String, r As String, re As Object
    Set re = CreateObject("vbscript.regexp")
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "https://www.yoursite.com?tag=stackoverfl08-20", False
        .send
        s = .responseText
    End With
    With re
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = "(""dimensionToAsinMap"" :.(.|\n)*)[;^\r\n].*return dataToReturn"
        If .test(s) Then
            r = .Execute(s)(0).SubMatches(0)
        Else
            r = "No match"
        End If
    End With
End Sub

Проверка окна местных жителей:

image


Regex объяснение:

image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...