【发布时间】:2016-08-17 10:41:39
【问题描述】:
我有一个简单的 python 程序,它应该将其数据推送到 R Shiny 应用程序中。 Shiny 中的这些行解析“GET”输入:
# Parse the GET query string
output$queryText <- renderText({
query <- parseQueryString(session$clientData$url_search)
eventList[query$eventid] <<- query$event
})
这适用于调用“http://127.0.0.1:5923/?eventid=1223&event=somestring”的浏览器。如果我尝试在 python 中调用 URL,我会在 R 中得到“由对等方重置的连接”,并且没有任何内容添加到列表中。到目前为止我的 Python 代码:
request = urllib2.Request("http://127.0.0.1:5923/?eventid=1223&event=somestring")
test = urllib2.urlopen(request)
有谁知道如何让它工作或有更好的解决方案将数据从外部推送到 R Shiny 应用程序?
感谢您的帮助!
【问题讨论】:
-
与闪亮的应用程序交互的客户端需要处理 javascript/websockets,据我所知
urllib2库没有。 -
闪亮的应用程序是客户端-服务器应用程序,所以你需要运行 Javascript 的东西。一个潜在的候选人是github.com/niklasb/dryscrape另一个潜在的解决方案seleniumhq.org
-
感谢您的 cmets。我通过使用 httpuv 和创建 websocket 服务器解决了我的问题。可在此处找到示例:github.com/rstudio/httpuv/blob/master/demo/daemon-echo.R
-
@tanktoo 这是一个非常有趣的方法。如果您可以将您的解决方案写成答案,它将在未来帮助其他人。
-
@warmoverflow 完成
标签: python r get shiny shiny-server