Это кажется простой проблемой, но я боролся с ней несколько дней. Это минимальный рабочий пример, а не реальная проблема:
Этот вопрос казался похожим, но я не смог использовать ответ для решения своей проблемы.
В браузере , С I go на этот URL и нажмите [Search] (нет необходимости делать выбор из списков), а затем [Download Results] (выбрав, например, параметр Xlsx) . Затем файл загружается.
Чтобы автоматизировать это в R, я попытался:
library(rvest)
url1 <- "https:/secure.gamblingcommission.gov.uk/PublicRegister/Search"
sesh1 <- html_session(url1)
form1 <-html_form(sesh1)[[1]]
subform <- submit_form(sesh1, form1)
Используя Chrome инструменты разработчика, я обнаружил, что URL-адрес используется для начала загрузки, поэтому я пытаюсь:
url2 <- "https:/secure.gamblingcommission.gov.uk/PublicRegister/Search/Download"
res <- GET(url = url2, query = list(format = "xlsx"))
Однако при этом файл не загружается:
> res$content
raw(0)
Я также пробовал
download.file(url = paste0(url2, "?format=xlsx") , destfile = "down.xlsx", mode = "wb")
Но при этом ничего не загружается:
> Content type '' length 0 bytes
> downloaded 0 bytes
Обратите внимание, что в браузере вставка url2
и добавление запроса format
инициирует загрузку (после выполнения поиска из url1
)
Я подумал, что я должен каким-то образом использовать информацию о сеансе из исходного блока кода для загрузки, но пока я не могу понять, как это сделать.
Заранее благодарим за любую помощь!