R-使用HTTPS URL登录后下载文件



我正在尝试下载一个链接的excel文件,但是我必须在下载文件之前登录到页面。我已经成功地通过了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")

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

供参考,如果我通过Chrome登录到网站,并在登录后将下载链接粘贴到浏览器窗口中,则文件会自动开始下载。如果我在IE中执行此操作,则文件下载对话框弹出并问我是否要保存文件。

可能相关信息:

  • 这是我在工作中的计算机,cookie被禁用了,所以我无法使用浏览器中的cookie
  • 我尝试使用HTTR和RCURL使用不同的方法,基于许多帖子,因此无济于事

事先感谢您的时间!

/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))

链接到原始问题

最新更新