如何使用 R 截取网站?
Posted
技术标签:
【中文标题】如何使用 R 截取网站?【英文标题】:How can I screenshot a website using R? 【发布时间】:2015-04-02 17:20:15 【问题描述】:所以我不能 100% 确定这是可能的,但我发现了 a good solution in Ruby 和 python,所以我想知道类似的东西是否可以在 R 中工作。
基本上,给定一个 URL,我想呈现该 URL,将呈现的屏幕截图保存为 .png,并将屏幕截图保存到指定文件夹。我想在无头 linux 服务器上完成所有这些工作。
我的最佳解决方案是运行system
调用CutyCapt 之类的工具,还是存在可以帮助我解决此问题的基于 R 的工具集?
【问题讨论】:
【参考方案1】:您可以使用 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
【讨论】:
Linux上可以使用browseURL(tf)
查看截图
函数 startServer()
在 1.7.1 版本中已失效。他们说“推荐的运行 selenium 服务器的方法是通过 Docker。或者查看 RSelenium::rsDriver 函数。”【参考方案2】:
我还没有测试过,但这个开源项目似乎正是这样做的:https://github.com/wch/webshot
这很简单:
library(webshot)
webshot("https://www.r-project.org/", "r.png")
【讨论】:
我试过了,但是 curl 无法验证错误 RSelenium 似乎已失效。以上是关于如何使用 R 截取网站?的主要内容,如果未能解决你的问题,请参考以下文章