使用 https URL 登录后下载文件

Downloading a file after login using a https URL

我正在尝试下载一个 excel 文件,我有 link 到该文件,但我需要先登录该页面才能下载该文件。我已经成功地通过了 rvest、rcurl 和 httr 的登录页面,但是我在登录后下载文件时遇到了非常困难的时间。

url <- "https://website.com/console/login.do"
download_url <- "https://website.com/file.xls"
session <- html_session(url)
form <- html_form(session)[[1]]

filled_form <- set_values(form,
                          userid = user,
                          password = pass)

## Save main page url
main_page <- submit_form(session, filled_form)

download.file(download_url, "./file.xls", method = "curl")

当我 运行 执行 download.file 命令时,文件会在我的工作目录中弹出,但它不是我要下载的文件,实际上只是一个损坏的 .XLS 文件没有数据。

供参考,如果我通过chrome登录网站,登录后将下载link粘贴到浏览器window,文件会自动开始下载.如果我在IE中这样做,会弹出文件下载对话框,询问我是否要保存文件。

可能相关的信息:

提前感谢您的宝贵时间!

/r/rstats 上确实有人找到了这个问题的答案。我的问题的解决方案如下:

#after login and submit_form do this:
download <- jump_to(main_page, download_url)

# write file to current working directory
writeBin(download$response$content, basename(download_url))