2017-06-25 4 views
0

Je veux créer une petite feuille excel qui sorte de bloompad de Bloomberg pour moi de surveiller le prix du marché boursier en direct. Jusqu'à présent, parmi toutes les sources de données gratuites disponibles, j'ai seulement trouvé que Google Finance fournissait un prix en temps réel pour une liste d'échanges dont j'avais besoin. Le problème avec Google Finance est qu'ils ont déjà fermé leur API de financement. Je cherche un moyen de m'aider à récupérer par programmation le prix réel que j'ai encerclé dans le tableau ci-dessous pour le mettre à jour en direct dans mon Excel.crawl realtime google finance prix

enter image description here

J'ai cherché autour et sans résultat à partir de maintenant. J'ai lu quelques post ici: How does Google Finance update stock prices? mais la méthode suggérée dans la réponse pointe à la récupération d'une série temporelle de données dans le graphique, au lieu de la partie du prix de mise à jour en direct dont j'ai besoin. J'ai examiné la communication de réseau de la page Web dans l'inspection de chrome et n'ai trouvé aucune demande qui renvoie la partie du prix en temps réel dont j'ai besoin. Toute aide est grandement appréciée. quelques exemples de codes (peuvent être dans d'autres langues que VBA) seraient très bénéfiques. Merci tout le monde !

Répondre

0

Il y a tellement de façons de faire ceci: VBA, VB, C# R, Python, etc. Voici un moyen de télécharger des statistiques de Yahoo Finance.

Sub DownloadData() 

Set ie = CreateObject("InternetExplorer.application") 

With ie 
    .Visible = True 
    .navigate "https://finance.yahoo.com/quote/AAPL/key-statistics?p=AAPL" 

' Wait for the page to fully load; you can't do anything if the page is not fully loaded 
Do While .Busy Or _ 
    .readyState <> 4 
    DoEvents 
Loop 

'Définir une référence aux éléments de données à télécharger. Nous pouvons télécharger des éléments de données 'td' ou des éléments de données 'tr'. Ce site utilise des éléments de données 'tr'. Set Liens = ie.document.getElementsByTagName ("tr") RowCount = 1

' Scrape out the innertext of each 'tr' element. 
With Sheets("DataSheet") 
    For Each lnk In Links 
     .Range("A" & RowCount) = lnk.innerText 
     RowCount = RowCount + 1 
    Next 
End With 

End With MsgBox ("Done !!")

End Sub

Je vais laisser à vous de trouver d'autres technologies qui font la même chose. Chose, par exemple, R et Prthon peuvent faire exactement la même chose, bien que, les scripts seront un peu différents des scripts VBA qui font ce genre de travail.