2017-02-22 22 views
-1

Я извлекал данные из API с помощью R с библиотеками httr и plyr. Его довольно прямо вперед, и хорошо работает со следующим кодом:Извлечение токена из заголовка запроса XHR с помощью R

library(httr) 
library(plyr) 

headers <- c("Accept" = "application/json, text/javascript", 
     "Accept-Encoding" = "gzip, deflate, sdch", 
     "Connection" = "keep-alive", 
     "Referer" = "http://www.afl.com.au/stat", 
     "Host" = "www.afl.com.au", 
     "User-Agent" = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36", 
     "X-Requested-With"= "XMLHttpRequest", 
     "X-media-mis-token" = "f31fcfedacc75b1f1b07d5a08887f078") 

query <- GET("http://www.afl.com.au/api/cfs/afl/season?seasonId=CD_S2016014", add_headers(headers)) 

stats <- httr::content(query) 

Мой вопрос в отношении маркера запроса требуется в заголовках (т.е. X-медиа-MIS-токенов). Это легко получить вручную, проверив элементы XHR в Chrome или Firefox, но токен обновляется каждые 24 часа, делая ручную извлечение болью.

Можно ли запросить веб-страницу и извлечь этот токен автоматически, используя R?

+0

Вы можете проверить ответ и проголосовать и проверить его? –

ответ

0

Вы можете получить токен X-media-mis-token, но с отказом от ответственности. ;)

library(httr) 
token_url <- 'http://www.afl.com.au/api/cfs/afl/WMCTok' 
token <- POST(token_url, encode="json") 
content(token)$token 
#[1] "f31fcfedacc75b1f1b07d5a08887f078" 
content(token)$disclaimer 
#[1] "All content and material contained within this site is protected by copyright owned by or licensed to Telstra. Unauthorised reproduction, publishing, transmission, distribution, copying or other use is prohibited. 
+0

Awesome Karthik, это прекрасно работает. Благодаря! – Safarr

+0

@Safarr Проголосовать и проверить ответ. Благодарю. –

+0

Ответ правильный Картик (я думал, что это было ясно из моего предыдущего комментария?). Я проголосовал, но это не значит, что у меня недостаточно очков репутации. – Safarr