Итерация функции очистки Rvest дает: «Ошибка в open.connection (x,« rb »): истекло время ожидания»
Я соскобэтот сайт используя "rvest" -пакет. Когда я повторяю свою функцию слишком много раз, я получаю сообщение «Ошибка в open.connection (x,« rb »): истекло время ожидания». Я искал похожие вопросы, но ответы, кажется, ведут в тупик. У меня есть подозрение, что это серверная часть, и у веб-сайта есть встроенное ограничение на то, сколько раз я могу посещать страницу. Как исследовать эту гипотезу?
Код: У меня есть ссылки на соответствующие веб-страницы и я хочу создать фрейм данных с информацией, извлеченной из связанных веб-страниц. Я немного упростил мою функцию очистки, поскольку проблема все еще возникает с более простой функцией:
scrape_test = function(link) {
slit <- str_split(link, "/") %>%
unlist()
id <- slit[5]
sem <- slit[6]
name <- link %>%
read_html(encoding = "UTF-8") %>%
html_nodes("h2") %>%
html_text() %>%
str_replace_all("\r\n", "") %>%
str_trim()
return(data.frame(id, sem, name))
}
Я использую purrr-пакет map_df () для итерации функции:
test.data = links %>%
map_df(scrape_test)
Теперь, если я повторю функцию, используя только 50 ссылок, я не получаю ошибки. Но когда я увеличиваю количество ссылок, я сталкиваюсь с вышеупомянутой ошибкой. Кроме того, я получаю следующие предупреждения:
«В bind_rows_ (x, .id): неравные уровни факторов: принуждение к персонажу»закрытие неиспользуемого соединения 4 (ссылка на сайт)»РЕДАКТИРОВАТЬ: Следующий код, создающий объект ссылок, может быть использован для воспроизведения моих результатов:
links <- c(rep("http://karakterstatistik.stads.ku.dk/Histogram/NMAK13032E/Winter-2013/B2", 100))