微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在R中,使用read_html读取的网站被重定向如何获取重定向到的网址?

如何解决在R中,使用read_html读取的网站被重定向如何获取重定向到的网址?

>>> dicto = {'A':'T','C':'G','T':'A','G':'C'}
>>> user = 'ACTG'
>>> from operator import itemgetter
>>> itemgetter(*user)(dicto)
('T','G','A','C')
>>> ''.join(_)
'TGAC'

尽管我们读了this_page = read_html("https://apu.edu/athletics") > this_page {xml_document} <html id="ctl00_html" lang="en" class=" index homepage"> [1] <head>\n<Meta http-equiv="Content-Type" content="text/html; charset=UTF-8">\n<script>window.client_hostname = "athletics.apu.edu";window.server_name = "79077 ... [2] <body>\n<div style="position: fixed; left: -10000px"><script src="//cdn.blueconic.net/azusa.js" async=""></script></div>\n<script>(function(i,s,o,g,r,a,m){i[ ... ,但它重定向https://apu.edu/athletics。这在浏览器中都是如此,也可以在athletics.apu.edu输出中看到:this_page

是否可以从<script>window.client_hostname = "athletics.apu.edu"; ...变量中提取此值?

编辑:当前排在前3位的答案(ekoam,David和Allan)全部起作用,并且都花费了相同的时间(0.35秒)。我接受了this_page的答案,因为它提供了所有重定向的附加信息...

解决方法

如果您不介意为此使用httr,则只需:

httr::GET("https://apu.edu/athletics")[["url"]]

> httr::GET("https://apu.edu/athletics")[["url"]]
[1] "https://athletics.apu.edu/"
,

如果您改用library(rvest) url <- "https://apu.edu/athletics" s <- html_session(url) s #> <session> https://athletics.apu.edu/ #> Status: 200 #> Type: text/html; charset=utf-8 #> Size: 221620 s$url #> [1] "https://athletics.apu.edu/" ,它将起作用:

google.maps.Map
,

如果您想获得所有重定向(实际上您在这里被重定向了两次),则可以使用此功能:

trace_redirects <- function(url) {
  httr::GET(url)$all_headers %>%
    lapply(function(x) x$headers$location) %>%
    unlist() %>%
    unique()
}

因此您可以这样做:

trace_redirects("https://apu.edu/athletics")
#> [1] "https://www.apu.edu/athletics" "http://athletics.apu.edu"      
#> [3] "https://athletics.apu.edu/"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。