使用 R 从 Stackoverflow 获取屏幕截图

问题描述 投票:0回答:1

我正在使用 R 编程语言。

假设我从这篇 stackoverflow 帖子(来自 u/Michael Hardy)中获取答案:https://math.stackexchange.com/a/62963/1296713

使用R和超链接(即https://math.stackexchange.com/a/62963/1296713),我想获取这个答案(仅答案,而不是整个帖子)并将其保存为PDF来自 R 本身的文档(包含乳胶)。我也可以接受 png 图像。

最终输出应如下所示:

我尝试了以下代码:

# https://cran.r-project.org/web/packages/webshot/readme/README.html
library(webshot)
webshot("https://math.stackexchange.com/a/62963/1296713", "r2.png")

此代码运行,但这包括整个网页 - 不仅仅是 u/Michael Hardy 的答案:

有人可以告诉我如何正确执行此操作吗?也许使用 rvest/httr webscraping 可以更轻松地完成此操作?

谢谢!

  • 注:

我还尝试了以下基于 CSS 选择器的方法:

library(webshot)

url <- "https://math.stackexchange.com/a/62963/1296713"
selector <- ".s-prose.js-post-body"

webshot(url, "r2.png", selector = selector)
html css r latex
1个回答
0
投票

使用 {chromote} 转 png:

ses <- chromote::ChromoteSession$new()
ses$default_timeout <- 10*60
ses$Page$navigate(url = "https://math.stackexchange.com/a/62963")
ses$view()

doc <- ses$DOM$getDocument()
sel <- "#answer-62963"

nid <- ses$DOM$querySelectorAll(doc$root$nodeId, sel)$nodeIds
box <- ses$DOM$getBoxModel(nid[[1]])

ses$screenshot(selector = sel,
               cliprect = c(box$model$content[[1]],
                            box$model$content[[3]]+box$model$content[[6]],
                            box$model$width,
                            box$model$content[[1]]+box$model$content[[3]]))

© www.soinside.com 2019 - 2024. All rights reserved.