本文主要讨论如何用R语言从郑州商品交易所网站上获取期货合约交易数据
郑商所网站提供了查询每日行情的页面,它提供的数据比大商所的要复杂一些,2010年至2013年的网页格式一样,地址也是同样的形式,请看
- http://www.czce.com.cn/portal/exchange/2010/datadaily/20100105.htm
- http://www.czce.com.cn/portal/exchange/2011/datadaily/20110105.htm
- http://www.czce.com.cn/portal/exchange/2012/datadaily/20120104.htm
- http://www.czce.com.cn/portal/exchange/2013/datadaily/20130104.htm
打开网页可以看到,网页提供了“打印”,“Excel”和“txt”三个选项,只要把地址后面的.html改为.txt就可以得到文本格式的数据,那么就可以逐一下载数据文件,读入数据。
这四年的数据可以这样获取:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | |
但是查询2009年及之前的数据返回的是网页形式,那就需要从网页上读取。
看下面几个链接
- http://www.czce.com.cn/portal/exchange/jyxx/hq/hq20060106.html
- http://www.czce.com.cn/portal/exchange/jyxx/hq/hq20070104.html
- http://www.czce.com.cn/portal/exchange/jyxx/hq/hq20080104.html
- http://www.czce.com.cn/portal/exchange/jyxx/hq/hq20090105.html
网页格式很统一,数据在被table标签包裹,并且是在第二个table标签中,XML包的readHTMLTable函数可以读取table标签中的内容,但是当网页中有汉字的时候,汉字会变成乱码,慎用!
不过,本文的情况有点特殊,汉字只出现在table的第一行表头,以及“小计”、“总计”的行,这些行本来就是要去掉的,所以对我们没影响。
下面只给出关键代码:
1 2 3 4 5 6 | |
再把第一列为NA的行去除就行了。