要读入财务信息试试这个功能(几个月前我拿起它并做了一些小调整)
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
}
}
要使用它,例如比较 3 家公司并将数据写入 csv 文件,请执行以下操作:
tickers <- c("AAPL","GOOG","F")
stats <- ldply(tickers, getKeyStats_xpath)
rownames(stats) <- tickers
write.csv(t(stats), "FinancialStats_updated.csv",row.names=TRUE)
刚刚试了一下。还在工作。
随着雅虎更改其网站布局而更新:
由于雅虎再次更改其网站布局,上述功能不再起作用。幸运的是,获取财务信息仍然很容易,因为获取基本数据的标签没有更改。
下载 MSFT、AAPL 和福特的 eps 和市盈率文件的示例,将以下内容插入浏览器:
http://finance.yahoo.com/d/quotes.csv?s=MSFT+AAPL+F&f=ser
在浏览器的地址栏中输入上述 URL 并按回车键后。 CSV 将自动下载到您的计算机,您应该得到如下所示的 cvs 文件(数据为 2016 年 7 月 22 日):
一些基本数据的雅虎标签: