Как исправить ошибку: 'url не существует'? - PullRequest
2 голосов
/ 17 октября 2019

Я пытаюсь почерпнуть некоторые данные с сайта сбоев голландского поезда . Раньше я делал это успешно с несколькими страницами, но сейчас я пытаюсь пойти на уровень глубже. Но, к сожалению, я получаю следующую ошибку:

Error: '/storingen/25215-29-december-2018-defect-spoor-amersfoort-ede-wageningen' does not exist.

Это должен быть правильный URL, но я думаю, что отсутствует первая часть

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

Кажется, я не могу определить причину проблемы. Я думаю, что возможно, что не весь URL получен.

Я использую следующий скрипт:

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)
...