如何使用 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 截取网站?的主要内容,如果未能解决你的问题,请参考以下文章

如何截取使用Google网站翻译的网站截图?

如何使用 php 截取已加载网页的屏幕截图? [复制]

Linux 中如何运用awk截取文件名中部分内容?

如何在 JavaScript 客户端截取网站/谷歌是如何做到的? (无需访问硬盘)[重复]

如何使用fiddler截取手机软件的https

如何用COBOL语言生成随机数?如何截取字符串?知道的大哥大姐告诉一下,谢谢O(∩_∩)O~