2015-11-05 130 views
1

我想從外部網站嵌入表格,例如investing.com,但我發現難以嵌入特定的div,在當前示例中,匯率表具有id =cr1。我怎麼只能嵌入表格本身?如何從外部網站嵌入特定div到Rshiny Iframe

rm(list = ls()) 
library(shiny) 

ui <- fluidPage(titlePanel("Getting A specific div from external website"), 
       mainPanel(fluidRow(     
        tags$iframe(seamless="seamless",src="http://www.investing.com/quotes/streaming-forex-rates-%E2%80%93-majors", height=600, width=1000) 
       ) 
     ) 
) 
server <- function(input, output) {} 
shinyApp(ui, server) 

我想表中僅紅色

enter image description here

+0

這是什麼語言?你用JavaScript標記了你的問題,但你的代碼不是JavaScript。 –

+0

其R,我需要使用Javascript來執行該調用。我將刪除不必要的標籤 –

回答

0

我覺得從隱藏的iframe的部分(AT-至少它似乎爲我做的跨域策略塊你)但你可以下載表格並顯示它,

rm(list = ls()) 
library(shiny) 

ui <- shinyUI(fluidPage(
    tags$head(
    tags$script(
     HTML(
     ' 
     $(document).ready(function(){ 
     // Should work if not blocked 
     $("#myiframe").attr("src","http://www.investing.com/quotes/streaming-forex-rates-%E2%80%93-majors"); 

     $("#myiframe").load(function(){ 
      console.log("UPDATED"); 
      var iframe = $("#myiframe").contents(), 
      tbl = iframe.find("#cr1").clone(); 
      iframe.find("html").replaceWidth(tbl); 
     }); 
     }); 
     ' 
    ) 
    ) 
), 
    titlePanel("Getting A specific div from external website"), 
    mainPanel(fluidRow( 
     tags$iframe(id="myiframe",seamless="seamless",src="", height=600, width=1000), 
     dataTableOutput("tbl1") 
    ) 
) 
)) 

library(httr) 
library(XML) 
server <- shinyServer(function(input, output) { 
    url <- "http://www.investing.com/quotes/streaming-forex-rates-%E2%80%93-majors" 
    page.DOM <- content(GET(url)) 
    tables <- readHTMLTable(page.DOM) 
    exchng.tbl <- tables$cr1 

    # cr1 
    output$tbl1 <- renderDataTable({ 
    exchng.tbl 
    }) 

}) 
shinyApp(ui, server) 
+0

還需要在整個頁面中 –

+0

頁面底部至少有一個表格,當我運行Javascript時出現錯誤。檢查[this](http://stackoverflow.com/questions/6170925/get-dom-content-of-cross-domain-iframe)鏈接。除非代理它,否則我認爲不可能編輯iframe中的部分。 –