J'ai atterri sur cette question en cherchant une réponse il y a quelques jours, pensé à fournir une réponse que j'ai créée en R (et l'ai partagé sur R-Bloggers). Je sais que la réponse que je fournis n'est pas en C# mais XPath et XML sont supportés dans toutes les langues pour que vous puissiez utiliser cette approche là. L'URL du blog est - http://www.r-bloggers.com/pull-yahoo-finance-key-statistics-instantaneously-using-xml-and-xpath-in-r/
#######################################################################
##Alternate method to download all key stats using XML and x_path - PREFERRED WAY
#######################################################################
setwd("C:/Users/i827456/Pictures/Blog/Oct-25")
require(XML)
require(plyr)
getKeyStats_xpath <- function(symbol) {
yahoo.URL <- "http://finance.yahoo.com/q/ks?s="
html_text <- htmlParse(paste(yahoo.URL, symbol, sep = ""), encoding="UTF-8")
#search for <td> nodes anywhere that have class 'yfnc_tablehead1'
nodes <- getNodeSet(html_text, "/*//td[@class='yfnc_tablehead1']")
if(length(nodes) > 0) {
measures <- sapply(nodes, xmlValue)
#Clean up the column name
measures <- gsub(" *[0-9]*:", "", gsub(" \\(.*?\\)[0-9]*:","", measures))
#Remove dups
dups <- which(duplicated(measures))
#print(dups)
for(i in 1:length(dups))
measures[dups[i]] = paste(measures[dups[i]], i, sep=" ")
#use siblings function to get value
values <- sapply(nodes, function(x) xmlValue(getSibling(x)))
df <- data.frame(t(values))
colnames(df) <- measures
return(df)
} else {
break
}
}
tickers <- c("AAPL")
stats <- ldply(tickers, getKeyStats_xpath)
rownames(stats) <- tickers
write.csv(t(stats), "FinancialStats_updated.csv",row.names=TRUE)
#######################################################################
C'est un vrai petit bijou d'un répondre. Je vous remercie! J'avais essayé l'ancienne version de Yahoo! Géré (de CodeProject - [link] (http://www.codeproject.com/Articles/42575/Yahoo-Finance-Managed)), dans lequel toutes les réponses dans l'application de test sortent comme zéro ou N/A. Le lien que vous avez donné fonctionne parfaitement. Désolé de vous déranger à nouveau, mais savez-vous si les méthodes doivent souvent être améliorées? Pas de soucis si vous êtes occupé. Je suis vraiment ravi de pouvoir accéder à l'information pour le moment. – HockeyJ
Pas très souvent. Ces données statisitques ne font pas partie de l'API CSV officielle de Yahoo. Au lieu de cela, la lib analyse la page normale de yahoo (via YQL, donc les données de fin proviennent de l'API officielle ^^, ce qui est important car la licence). Ainsi, chaque fois que Yahoo change son site (les parties de la table), la lib nécessite une mise à jour. greetz – Maas
Cool. Merci pour l'info. Je vais faire un don au projet quand j'ai été payé, car c'est vraiment bon! – HockeyJ