3

当我导航至此页面 ( http://hk.ishares.com/product_info/fund/overview/SEHK/2836.htm ) 并单击“资产净值/指数历史”链接(在“市场信息”下)以下载 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 对象。

谢谢你。

4

1 回答 1

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,然后用它们发送请求。

于 2013-03-19T11:17:23.107 回答