按照建议使用
我需要检查网址是否重定向到R中的另一个页面。可能吗?
查看httr
包,GET
函数:
> library(httr)
> names(GET("http://www.stackoverflow.com"))
[1] "url" "handle" "status_code" "headers" "cookies"
[6] "content" "times" "config"
> GET("http://www.stackoverflow.com")$status_code
[1] 200
按照建议使用HEAD
,但检查返回对象的 url 和您输入的 url 是否相同
url <- "https://google.ca/"
stat <- httr::HEAD(url)
stat
Response [https://www.google.ca/]
Date: 2018-02-17 13:57
Status: 200
Content-Type: text/html; charset=ISO-8859-1
<EMPTY BODY>
stat$times
redirect namelookup connect pretransfer starttransfer total
0.054985 0.000030 0.000033 0.000109 0.082320 0.137389
times
的第一个元素是 redirect
。我不能总是确定重定向的页面看起来像这样,所以我只检查url
和HEAD(url)$url
是否相同:
HEAD(url)$url == url
[1] FALSE # FALSE for redirect
请注意,在网址末尾添加/
的网页也被视为重定向:
HEAD("https://www.google.ca")$url == "https://www.google.ca"
[1] FALSE
HEAD("https://www.google.ca/")$url == "https://www.google.ca/"
[1] TRUE
因此,如果您关心这样的小东西是否被视为重定向,您可能需要处理返回的 url。