2015-11-05 4 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

Я думаю, что блок политики перекрестного происхождения вас из укрытия частей из фрейма (по-крайней мере, это, кажется, делает это для меня), но вы можете загрузить таблицу и отобразить ее,

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, если вы не проксируете его. –

Смежные вопросы