2013-03-19 4 views
3

Когда я перехожу на эту страницу (http://hk.ishares.com/product_info/fund/overview/SEHK/2836.htm) и перейдите по ссылке «NAV/Index History» (в разделе «Информация о рынке»), чтобы загрузить CSV-файл, содержимое этого файла на английском. Однако, если я пытаюсь сделать то же самое с помощью R с помощью следующих команд, содержимое на китайском языке:download.file() с многоязычного сайта

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 

Предположительно это происходит потому, что веб-сайт распознавания куки в браузере и доставки мне английскую версию файла, но не при прохождении R.

Есть ли способ обойти это? Это вызывает некоторые трудности с преобразованием CSV-файла в XTS, потому что я не знаю, как преобразовать китайские даты в объект Date.

Спасибо.

+1

Вы пытались что-то вроде 'gsub (" [^ [: digit:]] "," - ", a [, 1])' в качестве быстрого исправления? –

+0

Возможно, сайт использует Content Negotiation на основе заголовка 'Accept-Language', который отправляет клиент? – CBroe

+0

@ sebastian-c Это почти сработало. Я получаю дополнительный дефис '' 2009-02-10- "' – mchangun

ответ

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) 

В основном, мы получаем кук с английской страницы и мы посылаем запрос с теми.

+0

Это красиво. Благодаря! – mchangun

Смежные вопросы