从 R 中的网站提取数据并将它们显示为 R 表
Posted
技术标签:
【中文标题】从 R 中的网站提取数据并将它们显示为 R 表【英文标题】:Pulling in data from websites in R and diplaying them as R tables 【发布时间】:2022-01-18 09:25:50 【问题描述】:我正在尝试构建一个闪亮的财务仪表板,但我卡在了第一步。我想写一篇如下表
来自https://stockanalysis.com/stocks/
并在我闪亮的环境中将其显示为表格。类似于我在下面的内容,但表格应显示来自任一链接的内容,而不是随机正态分布。
library(shiny)
ui <- fluidPage(
sliderInput(inputId = "num",
label = "Choose a number",
value = 25, min = 1, max = 100),
dataTableOutput("T")
)
server <- function(input, output)
output$T <- renderDataTable(
data.frame(x=rnorm(input$num))
)
shinyApp(ui = ui, server = server)
【问题讨论】:
【参考方案1】:您需要使用 R 中的 rvest
库来抓取表格。
您可以使用安装包
install.packages("rvest")
.
要抓取表格,您需要检查网页并找出表格 ID。它看起来像这样:
代码如下:
library(rvest)
library(dplyr)
url <- ("https://stockanalysis.com/stocks/")
page <- read_html(url)
stocks <- page %>%
html_nodes('table#symbol-table') %>%
html_table() %>% .[[1]]
整个 Shiny App 将如下所示:
library(shiny)
library(rvest)
library(dplyr)
url <- ("https://stockanalysis.com/stocks/")
page <- read_html(url)
page
stocks <- page %>%
html_nodes('table#symbol-table') %>%
html_table() %>% .[[1]]
ui <- fluidPage(
sliderInput(inputId = "num",
label = "Choose a number",
value = 25, min = 1, max = 100),
dataTableOutput("T")
)
server <- function(input, output)
output$T <- renderDataTable(
stocks
)
shinyApp(ui = ui, server = server)
【讨论】:
嘿@Vishal A.,这只会为名称以 A 开头的代码提取数据。你知道我如何获取所有代码的数据吗? 请查看this答案。以上是关于从 R 中的网站提取数据并将它们显示为 R 表的主要内容,如果未能解决你的问题,请参考以下文章