簡體   English   中英

R:下載嵌入網頁的pdf

[英]R: download pdf embedded in a webpage

試圖找到一種更簡單的方法來獲取嵌入在此 頁面中的 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) 

需要 IE 才能與該頁面進行有效交互是不正確的。 在 Mac 上使用 Firefox 或 Chrome 時,數據列上方和左側的小打印機圖標提供“打印此報告”的功能,當鼠標懸停在鼠標上方時,單擊會導致下載名為“CrystalReportViewer1.pdf”的文件。 如果然后使用名為 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

與其嘗試從該頁面中提取 pdf(據我所知,這不是 pdf 格式),您應該使用 RSelenium 將 pdf 文件下載到本地驅動器並從那里處理它。

這是按鈕 ID:

{'id':'CrystalReportViewer1_toptoolbar_print'}

RSelenium 幫助頁面中有演示。 一個名為:selDownloadZip.R。 它顯示了如何在“頁面元素”上執行“點擊”:

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

然后查看 Firefox 的 ViewSource 面板中的“元素檢查器”,我看到按鈕的名稱(“id”、“theBttnbobjid_1459536946505_dialog_submitBtn”),因此需要進一步單擊。 但是這個數字隨着每個頁面的訪問而變化,所以使用webElem <- remDr$findElement("link text", "Export")

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

查看 webElement 類幫助頁面是個好主意。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM