我需要从雅虎财经页面读取股票的收盘价。我在使用谷歌财经页面之前就已经回答了这个问题,但该页面不再可用,我相信谷歌已经完全改变了它的财经页面。我相信我可以在雅虎财经上应用同样的方法,只需稍作修改。
假设雅虎财经对股票代码 AAPL(苹果)有以下代码:
![YAHOO WEBPAGE CODE FOR AAPL][1]
我只需要提取值 172.77。
这与 Google 财经页面完美配合。在我下面的代码中。
该行:
"https://finance.google.com/finance?q="
被替换为:
"https://finance.yahoo.com/quote/"
该代码在一系列单元格中循环并读取股票代码。我们需要从雅虎页面获得相同的结果。
Sub ImportCurrentPriceNEW()
Dim appIE As New InternetExplorer, html As HTMLDocument
Dim item_data As Object
For k = 6 To 26 Step 1
s = 1
H = 1
L = 1
StopLoop = 0
q = Format(k, "0")
If IsEmpty(ActiveSheet.Range("$E$" & q).Value) = True Then
With appIE
.Visible = False
.navigate "https://finance.google.com/finance?q=" & Sheets("Up Trend
Stocks").Range("$A$" & q).Value
Do Until .readyState = 4: DoEvents: Loop
Set html = .document
End With
Set item_data = html.querySelector(".pr span")
Range("$B$" & q).Value = item_data.innerText
End If
Next
appIE.Quit
Range("D1").Select
End Sub
请让我知道如何修改上面的代码以从雅虎财经页面读取数据。
尝试下面的方法。它应该为您带来以下价值AAPL
from https://finance.yahoo.com/quote/
。要达到使用的值class
姓名或tag
名字其实很麻烦。不过我用的是静态的id
here.
Sub Fetch_Quote()
Dim HTML As HTMLDocument, elem As Object, URL$
URL = "https://finance.yahoo.com/quote/AAPL?p=AAPL"
With CreateObject("InternetExplorer.Application")
.Visible = True
.navigate URL
While .Busy = True Or .readyState < 4: DoEvents: Wend
Set HTML = .document
Set elem = HTML.getElementById("quote-market-notice").PreviousSibling.PreviousSibling
MsgBox elem.innerText
End With
End Sub
然后试试这个。现在,您应该眨眼就能得到结果:
Sub Fetch_Quote()
Dim HTML As New HTMLDocument, elem As Object, URL$
URL = "https://finance.yahoo.com/quote/AAPL?p=AAPL"
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", URL, False
.send
HTML.body.innerHTML = .responseText
Set elem = HTML.getElementById("quote-market-notice").PreviousSibling.PreviousSibling
MsgBox elem.innerText
End With
End Sub
添加到库的参考:
Microsoft XML, V6.0
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)