@ Андреас должен быть новый вопрос с MWE
аюсь использовать эту веб-страницуhttp://volcano.si.edu/search_eruption.cfm скрести данные. Есть два раскрывающихся списка, которые запрашивают фильтры данных. Мне не нужны отфильтрованные данные, поэтому я оставляю их пустыми и перехожу на следующую страницу, нажимая "Поисковые извержения».
Однако я заметил, что полученная таблица содержит только небольшое количество столбцов (всего 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
Спасибо за любую помощь, которую вы можете предоставить.