在R中多页浏览网页&;级别,如何修复错误:';url不存在';?

在R中多页浏览网页&;级别,如何修复错误:';url不存在';?,r,web-scraping,rvest,R,Web Scraping,Rvest,我正试图从中搜集一些数据。我以前用多个页面成功地做到了这一点,但现在我正在尝试更深一层。但不幸的是,我得到了以下错误: 错误:'/storingen/25215-29-december-2018-defect-spoor-amersfoort-ede-wageningen'不存在。 这应该是正确的url,但我认为它缺少第一部分 https://www.rijdendetreinen.nl/storingen/25235-31-december-2018-seinstoring-groningen

我正试图从中搜集一些数据。我以前用多个页面成功地做到了这一点,但现在我正在尝试更深一层。但不幸的是,我得到了以下错误:

错误:'/storingen/25215-29-december-2018-defect-spoor-amersfoort-ede-wageningen'不存在。

这应该是正确的url,但我认为它缺少第一部分

https://www.rijdendetreinen.nl/storingen/25235-31-december-2018-seinstoring-groningen-eemshaven

我似乎找不到问题的根源。我想我可能无法检索到整个url

我正在使用以下脚本:
库(tidyverse)
图书馆(rvest)

get_element_数据网站通常存储没有根域的内部链接,因此需要粘贴
https://www.rijdendetreinen.nl
返回in@AndrewGustar是的,谢谢,HTML确实缺少根域。添加此项的最佳方式是什么?(代码中的什么地方?)我用paste0函数进行了尝试。它在下面这样的简单设置中工作,但在脚本内部不工作
path在第二个函数中定义
element\u url
后,添加一行
element\u url No,这是因为您的一个链接返回为
NA
。也许添加
元素\u url谢谢@AndrewGustar解决了这个问题!
library(tidyverse)
library(rvest)

get_element_data <- function(link){  
  if(!is.na(link)){
    html <- read_html(link)
    Sys.sleep(2)
    datum <- html %>%
      html_node(".disruption-cause") %>%
      html_text()
    return(tibble(datum=datum))
  }
}

get_elements_from_url <- function(url){
  html_page <- read_html(url)
  Sys.sleep(2)
  route <- scrape_css(".disruption-line",".resolved",html_page)
  problem <- scrape_css("em",".resolved",html_page)
  time <- scrape_css(".timestamp",".resolved",html_page)
  element_urls <- scrape_css_attr(".resolved","div","href",html_page)
  element_data_detail <- element_urls %>%
    map(get_element_data) %>%
    bind_rows()
  elements_data <- tibble(route=route, problem=problem, time=time, element_urls=element_urls)
  elements_data_overview <- elements_data[complete.cases(elements_data[,2]), ]
  return(bind_cols(elements_data_overview,element_data_detail))
}

scrape_write_table <- function(url){
  list_of_pages <- str_c(url, 2)
  list_of_pages %>%
    map(get_elements_from_url) %>%
    bind_rows()
}

trainDisruptions <- scrape_write_table("https://www.rijdendetreinen.nl/storingen?lines=&reasons=&date_before=31-12-2018&date_after=01-01-2018&page=")

View(trainDisruptions)