使用https网址

时间:2018-04-26 21:31:10

标签: r rvest rcurl httr

我正在尝试下载一个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")

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

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

可能相关的信息:

  • 这是我工作的电脑,禁用了Cookie,因此我无法使用浏览器中的Cookie
  • 我尝试过使用httr和rcurl的不同方法,基于SO上的大量帖子无济于事

提前感谢您的时间!

1 个答案:

答案 0 :(得分:1)

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

Link to original SO question