[英]Getting data from HTML source in VBA (excel)
我正在嘗試從一個網站收集數據,一旦源為字符串形式,該數據應該是可管理的。 環顧四周,我已經整理了一些可能的解決方案,但是所有這些解決方案都遇到了問題:
這是我遇到的問題:
代碼1:
Sub getData()Dim url作為字符串,即作為對象,狀態作為Integer Dim文本作為Variant,startS作為Integer,endS作為Integer
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = 0
url = "http://www.eoddata.com/stockquote/NASDAQ/AAPL.htm"
ie.Navigate url
state = 0
Do Until state = 4
DoEvents
state = ie.readyState
Loop
text = ie.Document.Body.innerHTML
startS = InStr(ie.Document.Body.innerHTML, "7/26/2012")
endS = InStr(ie.Document.Body.innerHTML, "7/25/2012")
text = Mid(ie.Document.Body.innerHTML, startS, endS - startS)
MsgBox text
如果我試圖從該頁面的08/10/12開盤價起,這類似於我假設您正在做的事情,那么我將執行以下操作:
Set ie = New InternetExplorer
With ie
.navigate "http://eoddata.com/stockquote/NASDAQ/AAPL.htm"
.Visible = False
While .Busy Or .readyState <> READYSTATE_COMPLETE
DoEvents
Wend
Set objHTML = .document
DoEvents
End With
Set elementONE = objHTML.getElementsByTagName("TD")
For i = 1 To elementONE.Length
elementTWO = elementONE.Item(i).innerText
If elementTWO = "08/10/12" Then
MsgBox (elementONE.Item(i + 1).innerText)
Exit For
End If
Next i
DoEvents
ie.Quit
DoEvents
Set ie = Nothing
您可以修改它以運行HTML並提取所需的任何數據。 迭代+2將返回高價,依此類推。
由於該頁面上的日期很多,因此您可能還需要檢查一下該日期是否在“近期收盤價”和“公司資料”之間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.