Я смог получить данные о запасе и индексе от Fidelity, установив соединение с соответствующей страницей Fidelity; запись результатов на рабочий лист; и затем найти результаты, которые я хочу на этом листе.Parsing Fidelity Stock Quote page
Я сейчас пытаюсь упростить и избегать использования как IE, так и временной страницы рабочего стола. Приведенный ниже код, с помощью Microsoft XML, v6.0, кажется, чтобы загрузить всю необходимую информацию, но я не могу понять, как обрабатывать вещи после того, чтобы быть в состоянии извлечь Имя, Последняя цена, и Дата/время этой последней цены.
Я посмотрел на Yahoo финансов и Google финансов, но они не имеют все индексы, которые я заинтересован.
ниже код заставляет меня до точки загрузки информации страницы, но только компоненты, которые, как я вижу, возвращаются «Get», это responseText
(который я разделил и разместил на листе для проверки) и responseBody
, который, кажется, представляет собой массив кодов символов содержимого responseText
.
Возможно, я даже не должен использовать инструмент MS XML, но мне кажется, что это должно быть возможно.
Спасибо за любые указатели.
Sub FIDOQuoteTester()
'Set Reference to Microsoft XML V6.0
Const sURLPart1 As String = "http://quotes.fidelity.com/webxpress/get_quote?QUOTE_TYPE=D&SID_VALUE_ID="
Const sURLPart3 As String = "&submit=Quote"
Dim sURL As String
Dim sSymbols As String '+ separated list
Dim REQ As MSXML2.ServerXMLHTTP60 'using Server type as the other raises security problems
Dim V As Variant, R As Range
Dim S As String
sSymbols = ".DJI+.SPX"
sURL = sURLPart1 & sSymbols & sURLPart3
Set REQ = New ServerXMLHTTP60
REQ.Open "Get", sURL, False
REQ.send
S = REQ.responseText
Stop
'putting string on worksheet for examination
'Need to split the string as it is too long for a cell.
V = Split(S, vbLf)
Set R = Range("a1").Resize(UBound(V) + 1, 1)
With R
.EntireColumn.Clear
.Value = WorksheetFunction.Transpose(V)
End With
End Sub
Вы можете загрузить reposneText (в данном случае HTML) в HTML-объекта (mshtml.tlb), а затем попытаться разборе элементы тд/тр. – cyboashu
@cyboashu Мне не удалось выяснить, как получить этот текст в объект документа HTML, в VBA. –
Посмотрите, помогает ли код (в ответах). – cyboashu