无法获取特定数据点以从 Yahoo Finance 提取到 Excel?
Can't get specific data-point to pull from Yahoo Finance into Excel?
我正试图从 Yahoo Finance 页面中提取一个非常具体的数字,但我卡住了。我试图从中提取此信息的 link 是:
我想获取靠近该页面顶部以粗体显示的 111.31 号码。我已经编写了以下代码来提取此信息,但每次我 运行 时,它都会显示 "Object doesn't support this property or method"。我怀疑错误出在我使用 getElementsByClass
和 getElementsById
提取数据的行中。
Sub GetQuote()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.navigate "http://finance.yahoo.com/q/hp?s=AAPL+Historical+Prices"
Do While .busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
With .document
Application.Wait (Now + #12:00:05 AM#)
Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker").getElementsById("yfs_184_aapl").innerText
End With
End With
Set IE = Nothing
End Sub
你们都可以看看,让我知道我哪里出错了,我该如何解决这个问题?
getElementsByClassName methodreturns一个或多个对象的集合。您需要提供集合中元素的索引(即 position)。试试,
Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker")(0).getElementById("yfs_184_aapl").innerText
事实上,yfs_184_aapl
ID 在该页面上是唯一的。你只需要,
Sheets("Sheet1").Range("A3") = .getElementById("yfs_184_aapl").innerText
请注意 getElementById method 是单数,而不是 getElementsById
。
我正试图从 Yahoo Finance 页面中提取一个非常具体的数字,但我卡住了。我试图从中提取此信息的 link 是:
我想获取靠近该页面顶部以粗体显示的 111.31 号码。我已经编写了以下代码来提取此信息,但每次我 运行 时,它都会显示 "Object doesn't support this property or method"。我怀疑错误出在我使用 getElementsByClass
和 getElementsById
提取数据的行中。
Sub GetQuote()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.navigate "http://finance.yahoo.com/q/hp?s=AAPL+Historical+Prices"
Do While .busy: DoEvents: Loop
Do While .ReadyState <> 4: DoEvents: Loop
With .document
Application.Wait (Now + #12:00:05 AM#)
Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker").getElementsById("yfs_184_aapl").innerText
End With
End With
Set IE = Nothing
End Sub
你们都可以看看,让我知道我哪里出错了,我该如何解决这个问题?
getElementsByClassName methodreturns一个或多个对象的集合。您需要提供集合中元素的索引(即 position)。试试,
Sheets("Sheet1").Range("A3") = .getElementsByClass("time_rtq_ticker")(0).getElementById("yfs_184_aapl").innerText
事实上,yfs_184_aapl
ID 在该页面上是唯一的。你只需要,
Sheets("Sheet1").Range("A3") = .getElementById("yfs_184_aapl").innerText
请注意 getElementById method 是单数,而不是 getElementsById
。