用R获取flash中的数据
当前位置:以往代写 > 其他教程 >用R获取flash中的数据
2019-06-14

用R获取flash中的数据

用R获取flash中的数据

某天我需要获取复旦人民币汇率指数的数据。此前我们先容过从网页抓取数据的两种要领

  1. 用url给处事器提交参数获取数据文件,譬喻用R获取大连商品生意业务所汗青数据这篇文章里提到的要领
  2. 理会html代码以获取数据,譬喻用R获取郑州商品生意业务所汗青数据这篇文章里提到的要领

而复旦的这个网页,不提供数据文件的下载,从html中也不能理会出数据。实际上,该网页中的flash向处事器发送请求,处事器返回数据给flash并显示出图形和表格。

用http://cos.name/cn/topic/107729中Xiao Nan版主先容的步伐,我用chrome看了下页面

network -> XHR

可以看到,上图中的表是从2012年12月12日到2013年2月10日的数据,对应的数据来自http://ifsfd.fudan.edu.cn/fdurmb/data?type=0%2C1%2C2&df=2012%2F12%2F12&dt=2013%2F02%2F10,打开这个链接,可以看出这是JSON名目,用R的rjson和RJSONIO包都可以理会JSON名目标数据。

我们来研究一下上面的这个链接,df=2012%2F12%2F12&dt=2013%2F02%2F10划定了从开始到竣事的日期,假如开始日期是YYYY年MM月DD日,竣事日期是yyyy年mm月dd日,那么对应的字符串是df=YYYY%2FMM%2FDD&dt=yyyy%2Fmm%2Fdd

那么文本开头提出的问题,可用下面的代码办理

# 从复旦人民币汇率指数网站读取数据 http://ifsfd.fudan.edu.cn/fdurmb/indexchart1.jsp
# 更多细节请看 http://cos.name/cn/topic/109132

require(RCurl)
require(rjson)

fdjson <- getURL("http://ifsfd.fudan.edu.cn/fdurmb/data?type=0%2C1%2C2&df=2012%2F12%2F12&dt=2013%2F02%2F10")
fdlist <- fromJSON(fdjson)
fdm <- matrix(unlist(fdlist),ncol=4,byrow=T)
fddf <- data.frame(fdm, stringsAsFactors = F)
fddf[,2:4] <- sapply(fddf[,2:4],as.numeric)
colnames(fddf) <- c("date","人民币名义有效汇率指数","人民币实际有效汇率指数","人民币盯住一篮子钱币模仿汇率指数")
write.csv(fddf,"fudan.csv",row.names = F )

    关键字:

在线提交作业