Я пытаюсь использовать эту веб-страницу http://volcano.si.edu/search_eruption.cfm для очистки данных. Есть два раскрывающихся окна, в которых запрашиваются фильтры данных. Мне не нужны отфильтрованные данные, поэтому я оставлю их пустыми и перейду к следующей странице, нажав «Search Eemptions».Использование R для «щелчка» кнопки файла загрузки на веб-странице
Однако я заметил, что итоговая таблица содержит только небольшое количество столбцов (всего 5) по сравнению с общим количеством столбцов (всего 24), которое оно должно иметь. Тем не менее, все 24 столбца будут доступны, если вы нажмете кнопку «Загрузить результаты в Excel» и откройте загруженный файл. Это то, что мне нужно.
Итак, похоже, что это превратилось из упражнения на скрежет (используя httr и rvest) во что-то более сложное. Тем не менее, я в тупике о том, как на самом деле «нажимать» на «Загрузить результаты в Excel» с использованием R. Мое предположение: мне придется использовать RSelenium, но вот мой код пытается использовать httr с POST в случае есть более простой способ, который любой из вас добрый человек может найти. Я также пытался использовать gdata, data.table, XML и т. Д. Безрезультатно, что может быть просто результатом ошибки пользователя.
Кроме того, было бы полезно знать, что кнопка загрузки не может быть нажата правой кнопкой мыши, чтобы показать URL-адрес.
url <- "http://volcano.si.edu/search_eruption_results.cfm"
searchcriteria <- list(
eruption_category = "",
country = ""
)
mydata <- POST(url, body = "searchcriteria")
Использования инспектора в моем браузере, я был в состоянии видеть, что два фильтра «eruption_category» и «страна» и как будет пустыми, так как я не нужен никакое отфильтрованного данные.
И, наконец, кажется, что приведенный выше код заставит меня перейти на страницу с таблицей с 5 столбцами. Тем не менее, я все еще не смог очистить эту таблицу, используя rvest в приведенном ниже коде (с помощью SelectorGadget, чтобы очистить только один столбец). В конце концов, эта часть не имеет значения, потому что, как я сказал выше, мне нужны все 24 столбца, а не только эти 5. Но если вы обнаружите какие-либо ошибки в том, что я сделал ниже, я был бы благодарен ,
Eruptions <- mydata %>%
read_html() %>%
html_nodes(".td8") %>%
html_text()
Eruptions
Благодарим за помощь, которую вы можете предоставить.
Похоже, на странице используется JavaScript, чтобы оказать стр. Самый простой и быстрый способ - просто загрузить файл Excel и обработать его. Данные выглядят как релевантно статические, поэтому случайная загрузка не должна быть проблемой. – Dave2e
Спасибо @ Dave2e. К сожалению, мне нужно **, чтобы делать это в R. И, как вы сказали, он в основном статичен, но все еще обновляется достаточно часто. – abet