从 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 表的主要内容,如果未能解决你的问题,请参考以下文章

从列表中提取值以将它们分配为 R 中的新变量

我有 R 代码从一个文档中提取信息。如何为我的文件夹中的所有文档循环?

从 df 列 R 中提取特定文本部分

比较excel文件中多张工作表的列标题并将其提取到R

R语言进行网站评论文本数据挖掘聚类

从R中的原始文件中提取数据