如何使用R截取网站?

Zac*_*ach 12 r rcurl httr

所以我不是100%确定这是可能的,但我在Rubypython中找到了一个很好的解决方案,所以我想知道类似的东西是否可以在R中起作用

基本上,给定一个URL,我想呈现该URL,将呈现的屏幕截图作为.png,并将屏幕截图保存到指定的文件夹.我想在无头的linux服务器上做所有这些.

我最好的解决方案是在运行CutyCaptsystem这样的工具,还是存在一个基于R的工具集来帮我解决这个问题?

luk*_*keA 21

您可以使用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()
Run Code Online (Sandbox Code Playgroud)

在早期版本中,您可以执行以下操作:

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
Run Code Online (Sandbox Code Playgroud)

  • 函数1.1.7中的startServer()函数已失效。他们说:“建议的运行硒服务器的方法是通过Docker。另请参见RSelenium :: rsDriver函数。” (2认同)

nas*_*ddd 9

我还没有测试过,但是这个开源项目似乎确实做到了:https : //github.com/wch/webshot

这很容易:

library(webshot)
webshot("https://www.r-project.org/", "r.png")
Run Code Online (Sandbox Code Playgroud)