当我导航到此页面(http://hk.ishares.com/product_info/fund/overview/SEHK/2836.htm)并单击“NAV /索引历史记录”链接(在“市场信息”下)下载CSV文件时,该文件的内容为英文。但是,如果我尝试通过R使用以下命令执行相同操作,则内容为中文:
download.file("http://hk.ishares.com/product_info/fund/excel_histoverview.htm?ticker=2836", destfile="2836.csv")
a <- read.csv("2836.csv", skip = 5)
> head(a)
日期 指數收市水平..HKD. 單位資產淨值 總派息.每股...HKD.
1 2013年03月18日 3666.9390 15.7774 0
2 2013年03月15日 3701.3143 15.9145 0
3 2013年03月14日 3709.7446 15.9484 0
4 2013年03月13日 3668.3178 15.8762 0
5 2013年03月12日 3707.0364 15.9726 0
6 2013年03月11日 3716.4011 16.0521 0
据推测,这是因为该网站在我的浏览器中识别出一个cookie并向我提供该文件的英文版本,但是当我通过R时却没有。
有没有办法解决这个问题?将CSV文件转换为XTS会让我遇到一些困难,因为我不知道如何将中文日期转换为Date对象。
谢谢。
答案 0 :(得分:4)
假设你安装了httr库,试试这个:
library(httr)
# Get cookies from English page
en_page <- GET("http://hk.ishares.com/product_info/fund/overview/SEHK/2836.htm?ls=true&l=en")
# Get the data
data <- GET("http://hk.ishares.com/product_info/fund/excel_histoverview.htm?ticker=2836",
set_cookies(en_page$cookies[[1]]))
# Load into a data.frame
a <- read.csv(textConnection(content(data)), skip = 5)
head(a)
基本上,我们从英文页面获取cookie,然后我们发送请求。