使用 RSelenium 下载 pdf

Posted

技术标签:

【中文标题】使用 RSelenium 下载 pdf【英文标题】:Downloading a pdf using RSelenium 【发布时间】:2015-12-27 00:06:06 【问题描述】:

我想用RSelenium 包做的是,

步骤:1 访问网站 - 我自己的电力供应商

步骤:2 通过明确提供我的用户名和密码来访问我的帐户(这就是我无法共享代码的原因)

步骤:3 我点击“查看我的账单”。 账单以 pdf 格式显示。

有没有办法下载该文件并保存到特定文件夹? 当我使用download.file() 命令时,它不会保存文档,而是得到一个无法打开的 3KB pdf 文件。 Adobe Reader 说读取文档时出错。

我尝试过的可能方法: 1. 右键单击​​,按四次向下箭头,然后到'SAVE PAGE AS'点击Enter。

然后它会弹出一个对话框,询问文件名和位置,我无法通过 RSelenium 输入这些详细信息并保存文件。

示例代码:网上随机找到的一些 PDF。

url<- "http://www.immigrationpolicy.org/sites/default/files/docs/how_us_immig_system_works.pdf"

setwd("C:/Users/king/Desktop/bill")
library(RSelenium)
library(downloader)
checkForServer()
startServer()
remDr <- remoteDriver()
remDr$open()
remDr$navigate(url)

【问题讨论】:

有趣的问题。你能提供一个最小的工作示例吗? ***.com/help/how-to-ask 【参考方案1】:

我在不断的研究中找到了答案。

首先检查是否Rtools is installed(使用此链接找到答案)

然后更新了我的程序

cprof<-makeFirefoxProfile(list(
  "pdfjs.disabled"=TRUE,
  "plugin.scan.plid.all" = FALSE,
  "plugin.scan.Acrobat" = "99.0",
  "browser.helperApps.neverAsk.saveToDisk"='application/pdf',
  ))
remDr <- remoteDriver(extraCapabilities=cprof)

仍在尝试更改我尚未找到的下载文件夹。我从THIS link找到答案

【讨论】:

以上代码仅适用于问题中的示例。当我在实际应用程序中尝试代码时,pdf 文件被自动下载为.aspx 文件。但随后尝试将文件重命名为 filename.pdf 它有效。我将下载的文件重命名为 .pdf。

以上是关于使用 RSelenium 下载 pdf的主要内容,如果未能解决你的问题,请参考以下文章

使用RSelenium执行拖放操作

并行运行 RSelenium

如何在 Linux 服务器上使用 Rselenium

异常处理RSelenium switchToFrame()错误:ElementNotVisible

在 RSelenium 中完成的文档

RSelenium弹出窗口