本文主要讨论如何用R语言从flash中获取数据
某天我需要获取复旦人民币汇率指数的数据。此前我们介绍过从网页抓取数据的两种方法
- 用url给服务器提交参数获取数据文件,例如用R获取大连商品交易所历史数据这篇文章里提到的方法
- 解析html代码以获取数据,例如用R获取郑州商品交易所历史数据这篇文章里提到的方法
而复旦的这个网页,不提供数据文件的下载,从html中也不能解析出数据。实际上,该网页中的flash向服务器发送请求,服务器返回数据给flash并显示出图形和表格。
用http://cos.name/cn/topic/107729中Xiao Nan版主介绍的办法,我用chrome看了下页面

可以看到,上图中的表是从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
那么文本开头提出的问题,可用下面的代码解决
1 2 3 4 5 6 7 8 9 10 11 12 13 | |