我正试图将Zillow的信息提取到excel表中 我在A列中有一个属性列表,格式为zillows所需格式,可通过其API进行输入。我希望我的代码为我的列中的每个属性运行,并将Zpid和Zestimate返回到J和K列中的表中。我已经开始使用以下内容,其中AA范围是我连接地址的地方,如上所述合并Zillows所需的字符串。我不确定它是否正在通过列,因为当我使用Msg.Box Http.ResponseText我不认为它是一个字符串。但是当我手动输入url时,返回的代码(见下文)就会出现。
Private Sub btnRefresh_Click()
Dim W As Worksheet: Set W = ActiveSheet
Dim Last As Integer: Last = W.Range("aa300").End(xlUp).Row
Dim Purported As String
Dim i As Integer
For i = 2 To Last
Purported = Purported & W.Range("AH" & i).Value & "+"
Next i
Purported = Left(Purported, Len(Purported) - 1)
Dim URL As String: URL = "http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1f9iajlak23_7kib9&address=" & Purported
Dim Http As New WinHttpRequest
Http.
我在浏览器中测试它并返回以下内容:
<zpid>88964519</zpid>
<links>
<homedetails>
http://www.zillow.com/homedetails/7736-SE-72nd-Ave-Portland-OR- 97206/88964519_zpid/
</homedetails>
<graphsanddata>http://www.zillow.com/homedetails/7736-SE-72nd-Ave-Portland-OR-97206/88964519_zpid/#charts-and-data
</graphsanddata>
<mapthishome>http://www.zillow.com/homes/88964519_zpid/</mapthishome>
<comparables>http://www.zillow.com/homes/comps/88964519_zpid/</comparables>
</links>
<address>
<street>7736 SE 72nd Ave</street>
<zipcode>97206</zipcode>
<city>Portland</city>
<state>OR</state>
<latitude>45.467339</latitude>
<longitude>-122.589271</longitude>
</address>
<zestimate>
<amount currency="USD">243161</amount>
我想将“Zpid”和“Zestimate”导入我的电子表格 每个
我是这个代码的新手并且正在努力学习。感谢我得到的任何帮助。谢谢,
答案 0 :(得分:0)
解决这个问题的方法可能有很多种,而且不清楚哪个部分会给你带来麻烦。也就是说,这是我的子程序示例,它找到了Zpid和Zestimate给出的有效地址字符串。希望它有所帮助:
以下代码要求将Microsoft XML添加到VBAProject引用中。
Sub Zillow(addressPart As String)
Dim httpRequest As MSXML2.XMLHTTP, xmlParser As MSXML2.DOMDocument
Set xmlRequest = New MSXML2.XMLHTTP
Set xmlParser = New MSXML2.DOMDocument
requestURL = "http://www.zillow.com/webservice/GetSearchResults.htm?zws-id=X1-ZWz1f9iajlak23_7kib9&address=" & addressPart
xmlRequest.Open "GET", requestURL, False
xmlRequest.Send
xmlParser.LoadXML xmlRequest.responseText
Zpid = xmlParser.SelectSingleNode("//zpid").Text
Zestimate = xmlParser.SelectSingleNode("//zestimate/amount").Text
End Sub
这应该将Zpid和Zestimate值放入这些变量中。显然,您必须进行一些修改才能通过所有数据循环,并填写相应的单元格。