我使用codeproject从雅虎获取共享数据 (http://www.codeproject.com/Articles/37550/Stock-quote-and-chart-from-Yahoo-in-C)。
在雅虎财经中,我想使用“关键统计”,但这种方式无法获得(例如http://uk.finance.yahoo.com/q/ks?s=BNZL.L处的数据)。有没有办法直接获得这些信息?如果可能的话,我真的不想屏幕刮擦。
我正在使用C#/。NET4。
答案 0 :(得分:4)
您可以使用我的lib for .NET Yahoo! Managed。你有MaasOne.Finance.YahooFinance.CompanyStatisticsDownload类来做你想要的。
p / s:您需要使用最新版本(0.10.1)。 v0.10.0.2已过时,使用密钥统计信息下载。
答案 1 :(得分:4)
我几天前在寻找答案的同时找到了这个问题,考虑提供我在R中创建的答案(并在R-Bloggers上分享)。我知道我提供的答案不在C#中,但每种语言都支持XPath和XML,因此您可以在那里使用这种方法。该博客的网址为 - 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)
#######################################################################
答案 2 :(得分:1)
如果你不介意使用BarChart.com的关键统计数据,这里有一个简单的函数脚本:
library(XML)
getKeyStats <- function(symbol) {
barchart.URL <- "http://www.barchart.com/profile.php?sym="
barchart.URL.Suffix <- "&view=key_statistics"
html_table <- readHTMLTable(paste(barchart.URL, symbol, barchart.URL.Suffix, sep = ""))
df_keystats = html_table[[5]]
print(df_keystats)
}