我是编码新手,一直试图弄清楚如何从 zillow 中提取特定数据并将其导入到 excel 中。老实说,我很难弄清楚这一点,我一直在查看表格和其他在线视频,但我没有任何运气。
这是我正在使用的网站的链接https://www.zillow.com/new-york-ny/home-values/
我希望将所有数字都提取到 excel 中,以便进行一些计算。如果有人可以帮助我将 660,000 美元的 Zillow 房屋价值指数提取到 Excel 中,我觉得我可以算出其余部分。
这是来自网站的代码
<ul class="value-info-list" id="yui_3_18_1_1_1529698944920_2626">
<li id="yui_3_18_1_1_1529698944920_2625">
<!-- TODO: need zillow logo icon here -->
<!-- <span class="zss-logo-color"><span class="zss-font-icon"></span></span> -->
<span class="value" id="yui_3_18_1_1_1529698944920_2624">
$660,000
</span>
<span class="info zsg-fineprint"> ZHVI
</span>
我尝试了 getElementsByTagName getElementById 和 getElemenByClass id 让我感到困惑,因为我希望能够将任何城镇输入到 excel 中,它会在 zillow 上搜索网页上的数据。所有的 id 标签都是不同的,所以如果我在这段代码中按 id 搜索,它将不适用于其他城镇。我使用了 Class 标签,并且能够获得一些我正在寻找的数据。
这是我想出的代码 它将 660,000 美元拉入消息框。Range 函数正在工作并将消息框数据放入 excel。这是拉了一堆字符串,我能够拿出 660,000 美元,但是设置刺痛的方式我不确定如何提取剩余数据,例如 1 年预测“yr_forcast”是我想要的单元格范围将数据拉入excel。我还希望从该消息框中提取剩余的数字以进行估值工作。
我还附上了消息框的屏幕截图,这样您就可以看到我在看什么。 链接到消息框的屏幕截图
Sub SearchBot1()
'dimension (declare or set aside memory for) our variables
Dim objIE As InternetExplorer 'special object variable representing the IE browser
Dim aEle As HTMLLinkElement 'special object variable for an <a> (link) element
Dim y As Integer 'integer variable we'll use as a counter
Dim result As String 'string variable that will hold our result link
Dim Doc As HTMLDocument 'holds document object for internet explorer
'initiating a new instance of Internet Explorer and asigning it to objIE
Set objIE = New InternetExplorer
'make IE browser visible (False would allow IE to run in the background)
objIE.Visible = True
'navigate IE to this web page (a pretty neat search engine really)
objIE.navigate "https://www.zillow.com/new-york-ny/home-values/"
'wait here a few seconds while the browser is busy
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
'in the search box put cell "A2" value, the word "in" and cell "C1" value
objIE.document.getElementById("local-search").Value = _
Sheets("Sheet2").Range("B3").Value & ", " & Sheets("Sheet2").Range("B4").Value
'click the 'go' button
Set the_input_elements = objIE.document.getElementsByTagName("button")
For Each input_element In the_input_elements
If input_element.getAttribute("name") = "SubmitButton" Then
input_element.Click
Exit For
End If
Next input_element
'wait again for the browser
Do While objIE.Busy = True Or objIE.readyState <> 4: DoEvents: Loop
'price for home
Set Doc = objIE.document
Dim cclass As String
cclass = Trim(Doc.getElementsByClassName("value-info-list")(0).innerText)
MsgBox cclass
Dim aclass As Variant
aclass = Split(cclass, " ")
Range("Market_Price").Value = aclass(0)
Range("yr_forecast").Value = aclass(5)
'close the browser
objIE.Quit
End Sub
如果您需要更多信息,请告诉我。