首页 > 解决方案 > Excel 中的 Web 抓取类似于 R 中的网站

问题描述

我有以下网站1,它就像一个 Excel 表,我们可以在其中过滤一些值以获得下面的表格结果。显然,它不像提取 HTML 标准页面。我正在尝试自动提取所有组合结果。我们必须插入年份(Ano)、月份(Mes)、消耗等级(DescClassConsumo)和电压带(Faixa de Tensão)并提取下面出现的表格。我尝试使用以下代码:

rm(list = ls())
#install.packages("rvest")
library(rvest)

url <- paste0("http://relatorios.aneel.gov.br/_layouts/xlviewer.aspx?id=/RelatoriosSAS/RelSAMPClasseConsNivel.xlsx&Source=http%3A%2F%2Frelatorios%2Eaneel%2Egov%2Ebr%2FRelatoriosSAS%2FForms%2FAllItems%2Easpx&DefaultItemOpen=1")

#Reading the HTML code from the website
webpage <- read_html(url)

#Using CSS selectors to scrap the rankings section
rank_data_html <- html_nodes(webpage,'.cv-nwl')

的结果rank_data_html为null,但这是我要根据SelectorGadget提取的值。

你有什么建议吗?

标签: r

解决方案


您可以尝试这样的功能:

main <- function(url) {
    x <- read_html(url) # URL is accepted and read_html() parses the page contents
    x <- html_table(x) # Page's html table selected
    x <- data.table(x[[1]]) # Converts html table to data.table
    return(x)
}

然后选择你想要的data.table部分!


推荐阅读