Получить информацию из XML с URL - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь извлечь информацию из этого URL https://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz18hxnbvw0ej_40oka&address=2912%20WEST%201ST%20STREET%20UNIT%201&citystatezip=Jacksonville%20FL%2032254

Информация, которую я хочу извлечь, - 102557, ее можно найти по этой части XML-URL:

<zestimate>
<amount currency="USD">102557</amount>

Я использую этот код для его извлечения, и он дает мне сообщение об ошибке «Переменная объекта или переменная блока не установлена».

Sub GetInfo2()

    Dim Http As New XMLHTTP60, Html As New HTMLDocument
    Dim lastrow As Long, i As Long
    Dim sdd As String
    Dim add As Variant
    Dim url As Range

    i = 2

    For Each url In Range(Cells(3, "M"), Cells(Rows.Count, "M").End(xlUp))
        With Http
            .Open "GET", url, False
            .send
            Html.body.innerHTML = .responseText
        End With


        sdd = Html.querySelector("span[class='zsg-tooltip-launch_keyword']")(0).innerText
        i = i + 1
        DD.Cells(i, "J") = sdd

    Next url


End Sub


1 Ответ

1 голос
/ 15 апреля 2019

Попробуйте, у меня это сработало. Вам просто нужно немного изменить его, чтобы он работал на вас ...

Sub GetInfo2()
    Dim objHttp As XMLHTTP60, objXml As DOMDocument60, strUrl As String

    Set objHttp = New XMLHTTP60
    Set objXml = New DOMDocument60

    strUrl = "https://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz18hxnbvw0ej_40oka&address=2912%20WEST%201ST%20STREET%20UNIT%201&citystatezip=Jacksonville%20FL%2032254"

    With objHttp
        .Open "GET", strUrl, False
        .send
    End With

    If objXml.LoadXML(objHttp.responseText) Then
        Debug.Print objXml.DocumentElement.SelectSingleNode("response/results/result/zestimate/amount").Text
    End If
End Sub

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

Это тоже работает ...

objXml.DocumentElement.SelectSingleNode("//amount").Text

... но будь осторожен с этим.

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