2015-04-02 70 views
9

所以我不是100%肯定這是可能的,但我覺得a good solution in Rubypython,所以獲得一個網址,我在想,如果類似的事情可能在R.如何使用R截圖網站?

的基本工作原理,我想渲染網址,將渲染截圖作爲.png,並將屏幕截圖保存到指定的文件夾中。我想在無頭Linux服務器上完成所有這些。

我的最佳解決方案是運行system調用CutyCapt這樣的工具,還是存在一個基於R的工具集,可以幫助我解決這個問題?

回答

18

你可以使用Selenium採取截圖:

library(RSelenium) 
rD <- rsDriver(browser = "phantomjs") 
remDr <- rD[['client']] 
remDr$navigate("http://www.r-project.org") 
remDr$screenshot(file = tf <- tempfile(fileext = ".png")) 
shell.exec(tf) # on windows 
remDr$close() 
rD$server$stop() 

在早期版本中,你能夠做到:

library(RSelenium) 
startServer() 
remDr <- remoteDriver$new() 
remDr$open() 
remDr$navigate("http://www.r-project.org") 
remDr$screenshot(file = tf <- tempfile(fileext = ".png")) 
shell.exec(tf) # on windows 
+0

哇,這就是我正在尋找的。謝謝! – Zach 2015-04-02 17:28:37

+1

您可以使用'browseURL(tf)'查看Linux上的屏幕截圖 – jsta 2015-10-29 00:16:06

+1

函數'startServer()'在版本1.7.1中不再有效。他們說:「 推薦的運行selenium服務器的方式是通過Docker,或者 參見RSelenium :: rsDriver函數。」 – drmariod 2017-03-15 14:48:48

2

我沒有測試過,但是,這個開源項目似乎確實如此:https://github.com/wch/webshot

這是一個很容易的:

library(webshot) 
webshot("https://www.r-project.org/", "r.png") 
+0

我試過這個,發現curl無法驗證錯誤 – jrzelling 2016-08-16 21:14:50