вход функция получает вектор из длинных URL, на выходе вы получаете вектор из их сокращённых версий.
Установка нужных пакетов
# install.packages("stringr")
# install.packages("httr")
# install.packages("xml2")
# install.packages("magrittr")
library(magrittr)
short_url <- function(url) {
short_link <- sapply(url,
function(x) {
stringr::str_interp("https://qps.ru/api?url=${x}") %>%
httr::GET() %>%
httr::content() %>%
xml2::xml_find_all(xpath = "./body") %>%
xml2::xml_text()
},
USE.NAMES = F)
return(short_link)
}
long_links <- c("http://google.com",
"http://selesnow.github.io",
"http://netpeak.net")
short_links <- short_url(long_links)
print(short_links)
[1] "https://qps.ru/mcboW" "https://qps.ru/CIEMi" "https://qps.ru/52OZp"
Возможно в будущем напишу ещё ряд функций такого рода и объединю в пакет.
Можно капельку проще: > readLines("https://qps.ru/api?url=https://google.com") [1] "https://qps.ru/2g5MI"
Обсуждают сегодня