来自 twitteR 包的函数 decode_short_URL 不工作
Function decode_short_URL from twitteR package not working
我正在使用 twitteR
包的 decode_short_url
来解码来自 Twitter 帖子的缩短的 URL,但我无法获得所需的结果,它总是返回相同的结果,例如:
decode_short_url(decode_short_url("http://bit.ly/23226se656"))
## http://bit.ly/23226se656
## [1] "http://bit.ly/23226se656
更新 我在 package and managed to get it on CRAN 同一天完成了此功能。现在,你可以这样做:
library(longurl)
expand_urls("http://bit.ly/23226se656", check=TRUE, warn=TRUE)
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100%
## Source: local data frame [1 x 2]
##
## orig_url expanded_url
## 1 http://bit.ly/23226se656 NA
##
## Warning message:
## In FUN(X[[i]], ...) : client error: (404) Not Found
您可以传入一个 URL 的向量,并以该形式返回 data_frame
/data.frame
。
那个特定的 bit.ly URL 给出了 404
错误。这是 decode_short_url
的一个版本,它有一个可选的 check
参数,它将尝试 HEAD
请求并针对 200 以外的任何 HTTP 状态抛出警告消息。
如果出现 "expanded" link 404,您可以将其进一步修改为 return NA
(我不知道您需要这样做才能在事件 link 是错误的)。
请注意,addd HEAD
请求会显着减慢处理速度,因此您可能希望首先将 check=FALSE
传递到单独的列,然后比较哪些不是 "expanded",然后用 check=TRUE
.
检查那些
您可能还想重命名它以避免与 twitteR
中的命名空间冲突。
decode_short_url <- function(url, check=FALSE, ...) {
require(httr)
request_url <- paste("http://api.longurl.org/v2/expand?url=",
url, "&format=json", sep="")
response <- GET(request_url, query=list(useragent="twitteR"), ...)
parsed <- content(response, as="parsed")
ret <- NULL
if (!("long-url" %in% names(parsed))) {
ret <- url
} else {
ret <- parsed[["long-url"]]
}
if (check) warn_for_status(HEAD(url))
return(url)
}
decode_short_url("http://bit.ly/23226se656", check=TRUE)
## [1] "http://bit.ly/23226se656"
## Warning message:
## In decode_short_url("http://bit.ly/23226se656", check = TRUE) :
## client error: (404) Not Found
我正在使用 twitteR
包的 decode_short_url
来解码来自 Twitter 帖子的缩短的 URL,但我无法获得所需的结果,它总是返回相同的结果,例如:
decode_short_url(decode_short_url("http://bit.ly/23226se656"))
## http://bit.ly/23226se656
## [1] "http://bit.ly/23226se656
更新 我在 package and managed to get it on CRAN 同一天完成了此功能。现在,你可以这样做:
library(longurl)
expand_urls("http://bit.ly/23226se656", check=TRUE, warn=TRUE)
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100%
## Source: local data frame [1 x 2]
##
## orig_url expanded_url
## 1 http://bit.ly/23226se656 NA
##
## Warning message:
## In FUN(X[[i]], ...) : client error: (404) Not Found
您可以传入一个 URL 的向量,并以该形式返回 data_frame
/data.frame
。
那个特定的 bit.ly URL 给出了 404
错误。这是 decode_short_url
的一个版本,它有一个可选的 check
参数,它将尝试 HEAD
请求并针对 200 以外的任何 HTTP 状态抛出警告消息。
如果出现 "expanded" link 404,您可以将其进一步修改为 return NA
(我不知道您需要这样做才能在事件 link 是错误的)。
请注意,addd HEAD
请求会显着减慢处理速度,因此您可能希望首先将 check=FALSE
传递到单独的列,然后比较哪些不是 "expanded",然后用 check=TRUE
.
您可能还想重命名它以避免与 twitteR
中的命名空间冲突。
decode_short_url <- function(url, check=FALSE, ...) {
require(httr)
request_url <- paste("http://api.longurl.org/v2/expand?url=",
url, "&format=json", sep="")
response <- GET(request_url, query=list(useragent="twitteR"), ...)
parsed <- content(response, as="parsed")
ret <- NULL
if (!("long-url" %in% names(parsed))) {
ret <- url
} else {
ret <- parsed[["long-url"]]
}
if (check) warn_for_status(HEAD(url))
return(url)
}
decode_short_url("http://bit.ly/23226se656", check=TRUE)
## [1] "http://bit.ly/23226se656"
## Warning message:
## In decode_short_url("http://bit.ly/23226se656", check = TRUE) :
## client error: (404) Not Found