декодировать tinyurl в R для получения всего пути URL?

Существует ли способ декодировать ссылки tinyURL в R так, чтобы я видел, к каким веб-страницам они на самом деле обращаются?

13
задан JD Long 24 March 2010 в 15:56
поделиться

3 ответа

Ниже представлено быстрое и грязное решение, но оно должно выполнить свою работу:

library(RCurl)

decode.short.url <- function(u) {
  x <- try( getURL(u, header = TRUE, nobody = TRUE, followlocation = FALSE) )
  if(class(x) == 'try-error') {
    return(u)
  } else {
    x <- strsplit(x, "Location: ")[[1]][2]
    return(strsplit(x, "\r")[[1]][1])
  }
}

Переменная u ниже содержит один сокращенный URL и один обычный URL.

u <- c("http://tinyurl.com/adcd", "http://www.google.com") 

Затем вы можете получить расширенные результаты, выполнив следующие действия.

 sapply(u, decode.short.url) 

Вышеупомянутое должно работать для большинства служб, которые сокращают URL, а не только для tinyURL. Думаю.

HTH

Тони Брейал

16
ответ дан 1 December 2019 в 23:31
поделиться

Я не знаю R, но в целом вам нужно сделать http-запрос на tinyurl-url. Вы должны получить ответ 301 с фактическим URL-адресом.

1
ответ дан 1 December 2019 в 23:31
поделиться
library(RCurl)

decode.short.url <- function(u) {
  x <- try( getURL(u, header = TRUE, nobody = TRUE, followlocation = FALSE) )
  if(class(x) == 'try-error') {
    return(u)
  } else {
    x <- strsplit(x, "Location: ")[[1]][2]
    return(strsplit(x, "\r")[[1]][1])
  }
}


( u <- c("http://tinyurl.com/adcd", "http://tinyurl.com/fnqsh") )
( sapply(u, decode.short.url) )
0
ответ дан 1 December 2019 в 23:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: