R:下载嵌入在网页中的pdf

时间:2016-04-01 14:48:40

标签: r pdf rselenium

尝试找到一种更简单的方法来获取此page中嵌入的pdf中的表格,甚至更好,将此pdf下载到本地驱动器中:

我的代码如下,结果很混乱......

PS:网页底部的按钮都没有工作,除非你使用IE浏览器和IE浏览器使用RSelenium ...我已经创建了一个代码来加载IE上的页面,可以成功点击任意一个按钮加载excel文件(卡在弹出窗口的步骤,要求我打开或保存)或打开当前窗口的pdf,但同样的问题,不知道如何获取pdf。到处都是死路一条。

提前致谢。

library(RSelenium)
checkForServer()
startServer()
remDr<-remoteDriver$new()
url<-"http://www.dmo.gov.uk/ceLogon.aspx?page=about&rptCode=D10A"
remDr$open(silent = TRUE) #opens a browser
remDr$navigate(url)
doc <- htmlParse(remDr$getPageSource()[[1]])

table <- readHTMLTable(doc, header=NA, stringsAsFactors=TRUE) 

1 个答案:

答案 0 :(得分:1)

与该页面进行有效交互需要IE是不正确的。在Mac上使用Firefox或Chrome,数据列上方和左侧的小型打印机图标提供了&#34;打印此报告&#34;当moused-over和clicked导致名为&#34; CrystalReportViewer1.pdf&#34;下载。如果然后使用cross-platform browser-plugin application named Tabula,则可以以csv格式提取数据。提取数据的顶部(2016年4月1日)如下所示:

Syndication ,Gilt Name ,Amount Sold ,Issue ,Issue ,Announcement ,Results 
Date ,"",(£ million ,Price (£) ,Yield ,Press Release ,Press Release
"","",nominal),"","","",""
23 Feb 2016 ,0 1/8% Index-linked Treasury Gilt 2065 ," 2,750.0 ", 163.73 ,-0.8905% ,Announcement ,Results
01 Dec 2015 ,0 1/8% Index-linked Treasury Gilt 2046 ," 3,250.0 ", 129.74 ,-0.7475% ,Announcement ,Results
20 Oct 2015 ,2½% Treasury Gilt 2065 ," 4,750.0 ", 98.40 , 2.5570% ,Announcement ,Results
22 Sep 2015 ,0 1/8% Index-linked Treasury Gilt 2068 ," 2,500.0 ", 166.00 ,-0.8655% ,Announcement ,Results
21 Jul 2015 ,3½% Treasury Gilt 2068 ," 4,000.0 ", 121.31 , 2.7360% ,Announcement ,Results

您应该使用RSelenium将pdf文件下载到本地驱动器并从那里进行处理,而不是尝试从该页面中提取pdf(而不是以我所能确定的pdf形式)。

这是按钮ID:

{'id':'CrystalReportViewer1_toptoolbar_print'}

RSelenium帮助页面中有演示。一个是题为:selDownloadZip.R。它显示了如何执行&#34; click&#34;在&#34;页面元素&#34;:

webElem <- remDr$findElement("id", "CrystalReportViewer1_toptoolbar_print")
webElem$clickElement()

然后查看&#34;元素Inspector&#34;在Firefox的ViewSource面板中,我看到了按钮的名称(&#34; id&#34;,&#34; theBttnbobjid_1459536946505_dialog_submitBtn&#34;),因此需要进一步点击。但是,该数字会随着每次访问权限而变化,因此请使用webElem <- remDr$findElement("link text", "Export")

 webElem <- remDr$findElement("link text", "Export")
 webElem$clickElement()

查看webElement-class帮助页面是个好主意。

enter image description here