r - 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提取的值。
你有什么建议吗?
解决方案
您可以尝试这样的功能:
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部分!
推荐阅读
- java - 我的 else 语句中的代码已经死了,我不相信这是真的(java)?
- webpack - 无法将 webpack 项目部署到 Netlify
- javascript - 使用 Node JS 等待玩家输入
- dynamics-crm - 如何在 crm 动态 365 中替换名称新 Web 资源中的前缀“WebResource_”?
- android - Android:如何获取蓝牙设备的更多信息?
- php - cUrl 没有发送帖子数据
- java - JavaFX BarChart - 主轴系列
- android - 将 Application 或 ApplicationContext 传递给 ViewModel?
- python - k-gram 索引方法和标准 python 字符串方法在处理通配符查询中的区别
- ios - 在 Flutter 应用程序中查找 iOS 包标识符