2016-07-11 2 views
0

フィデリティから関連するフィデリティページへの接続を設定することで、在庫とインデックスデータを取得することができました。結果をワークシートに書き込む。そのシート上で必要な結果を見つけることができます。Parsing Fidelity Stock Quoteページ

簡略化しようとしています。は、IEと一時的なワークシートのページの両方を使用しないようにしています。以下のコードは、MicrosoftのXMLを使用して、V6.0は、すべての関連情報をダウンロードしているようだが、私はそう名を抽出することができるよう、後で物事を処理する方法を見つけ出すことはできません、最終価格日付/時刻その最後の価格。

私はヤフーファイナンスとGoogleファイナンスを見てきましたが、彼らは私が興味を持ってすべてのインデックスを持っていません。

次のコードは、ページ情報をダウンロードのポイントに私を取得しますが、私が "Get"によって返されたと見なされるコンポーネントはresponseText(私は分割して検査のためにワークシートに置いたものです)とはresponseTextの文字コードの配列のようです。

おそらく私は最初にMS XMLツールを使用すべきではありませんが、これは可能なはずです。

ありがとうございます。マイクロソフトHTMLオブジェクトライブラリへのrefernceを設定


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 

+0

あなたはHTMLオブジェクト(mshtml.tlb)にreposneText(この場合はHTML)をロードし、その後TD/TR要素を解析してみてください。 – cyboashu

+0

@cyboashu VBAでは、そのテキストをHTMLドキュメントオブジェクトに取り込む方法を見つけることができませんでした。 –

+0

コードが回答に役立つかどうか確認してください。 – cyboashu

答えて

1

。その後

'/ Adding response text to MSHTML 

Dim oHTML  As New HTMLDocument 
Dim e   '/ This is your element 

oHTML.body.innerHTML = "" 

oHTML.body.innerHTML = S '/ Set your responseText(HTML) here 

'/ Loop through all the elements 
For Each e In oHTML.all 
    Debug.Print e.ID & "-->" & e.innerText 
Next 
+1

ありがとう!そうです。私は.innerHTMLが読み書きしかできず、読み込み専用ではないことに気がつきませんでした。 –