Я использовал код Тони Бреяля, но функция вернула значения NA
для тех URL, где не было перенаправления URL. Несмотря на то, что Тони в своем примере указал «google.com», я думаю, что Google в любом случае перенаправит вас на какую-то локализованную версию google.com.
Вот как я изменил код Тони, чтобы справиться с этим:
decode.short.url <- function(u) {
x <- try( getURL(u, header = TRUE, nobody = TRUE, followlocation = FALSE) )
if(class(x) == 'try-error') {
print(paste("***", u, "--> ERORR!!!!"))
return(u)
} else {
x <- strsplit(x, "Location: ")[[1]][2]
x.2 <- strsplit(x, "\r")[[1]][1]
if (is.na(x.2)){
print(paste("***", u, "--> No change."))
return(u)
}else{
print(paste("***", x.2, "--> resolved in -->", x.2))
return(x.2)
}
}
}
u <- list("http://www.amazon.com", "http://tinyurl.com/adcd")
urls <- sapply(u, decode.short.url)