Я получаю противоречивые результаты, убирая несколько URL с rvest
. Объединенная строка URL-адресов возвращает символьный вектор. Запуск html_nodes
возвращает три разных результата.
library(rvest)
url <- c("https://interestingengineering.com/due-to-the-space-inside-atoms-you-are-mostly-
made-up-of-empty-space",
"https://futurism.com/mit-tech-self-driving-cars-see-under-surface-road",
"https://techxplore.com/news/2020-02-socially-robot-children-autism.html",
"https://eos.org/science-updates/hackathon-speeds-progress-toward-climate-model-
collaboration",
"https://www.smithsonianmag.com/innovation/new-study-finds-people-prefer-robots-
explain-themselves-180974299/",
"https://www.sciencedaily.com/releases/2020/02/200227144259.htm")
page <-map(url, ~read_html(.x) %>% html_nodes("p") %>% html_text())
Этот код либо вернет извлеченное содержимое со всех URL-адресов.
, либо выдаст следующее сообщение об ошибке:
Ошибка в open.connection (x, "rb"): Ошибка при обработке кодирования содержимого: установлена недопустимая длина кода
Или это сообщение об ошибке:
Ошибка при переносе: ошибка HTTP 410.
После последнего сообщения об ошибке я также получаю Browse [1]> в консоли.
Я попытался запустить URL-адреса из CSV file:
urldoc<- read.csv("URLs for rvest.csv", stringsAsFactors=FALSE, sep = ",")
page <-map(urldoc, ~read_html(.x) %>% html_nodes("p") %>% html_text())
Вывод print(urldoc)
выглядит аналогично выводу из объединенного кода, но я получаю другое сообщение об ошибке:
Ошибка в файле doc_parse_file (con, кодировка = кодировка, as_ html = as_ html, опции = опции): ожидается одно строковое значение: [тип = символ; экстент = 83]
Я не могу запустить html_node
или html_text
для фрейма данных.
1) Как получить последовательный возврат без ошибок.
2) Еще лучше, как я могу использовать документ с URL-адресами вместо объединенной строки?