首页 > 解决方案 > R Shiny:从 iframe 中抓取数据

问题描述

假设我有一个超级简单的闪亮应用程序,它只是一个 iframe,我希望用户在 iframe 中做一些事情(比如单击网站上的按钮),然后我会从 iframe 中捕获数据(比如 HTML 的转储正在向用户显示)。您应该记住的粗略项目是,我想通过将整个事情打包在一个闪亮的应用程序中来自动化抓取任务,以便执行需要人工交互的抓取任务的小组可以通过该应用程序真正顺利有效地完成它。

这是一个 MWE 应用程序。嵌入谷歌表格很容易,所以我只是为这个应用程序创建了一个测试谷歌表单,但显然这不是主要项目(因为我可以很容易地通过表单本身捕获谷歌表单的输出)。

我想我想做的是以某种方式检查输出对象,但似乎 s3 方法使很多事情变得不可能。有关遇到此问题的示例,请参见此处此处。在这两种情况下,解决方法是做一些明智和反应性的事情,而不是从输出对象中读取,所以我希望在我的情况下,我还缺少一些明显的东西,这将帮助我从 iframe 中获取 HTML用于在服务器功能中进行操作。

library(shiny)

ui <- fluidPage(
    titlePanel("Google Form iFrame App"),
    mainPanel(
        tags$iframe(
            src='https://docs.google.com/forms/d/e/1FAIpQLSd6ArzwVZadhkxTLEyknAtRKnZAEtFNX6mxqxCRWWqs6tL3gw/viewform?embedded=true',
            height=800,
            width="90%"
        ),
        align = "center"
    )
)

# Nothing interactive in this example
server <- function(input, output) {

}

# Run the application 
shinyApp(ui = ui, server = server)

标签: riframeshinyshiny-reactivity

解决方案


推荐阅读