在R中使用html_表创建刮表

在R中使用html_表创建刮表,r,web-scraping,html-table,html-parsing,rvest,R,Web Scraping,Html Table,Html Parsing,Rvest,我想从以下链接中删除扇区权重表: 我想要的表是网站源代码中的表6。我用R编写了以下脚本: library(rvest) turl = 'http://portfolios.morningstar.com/fund/summary?t=SPY' turlr = read_html(turl) df6<-html_table(html_nodes(turlr, 'table')[[6]], fill = TRUE) 库(rvest) 图尔http://portfolios.mo

我想从以下链接中删除扇区权重表:

我想要的表是网站源代码中的表6。我用R编写了以下脚本:

 library(rvest)
 turl = 'http://portfolios.morningstar.com/fund/summary?t=SPY'
 turlr = read_html(turl) 
 df6<-html_table(html_nodes(turlr, 'table')[[6]], fill = TRUE) 
库(rvest)
图尔http://portfolios.morningstar.com/fund/summary?t=SPY'
turlr=read_html(turl)

df6由于所需表格是以不同的方式设计的,因此rvest
无法将其格式化为正确的表格。但是使用
XML
包,您可以非常轻松地完成这项工作

library(XML)
library(dplyr)

#read required table
turl = 'http://portfolios.morningstar.com/fund/summary?t=SPY'
temp_table <- readHTMLTable(turl)[[6]]

#process table to readable format
final_table <- temp_table %>%
  select(V2, V3, V4, V5) %>%
  na.omit() %>%
  `colnames<-` (c("","% Stocks","Benchmark","Category Avg")) %>%
  `rownames<-` (seq_len(nrow(.)))
final_table

希望有帮助

由于所需表格的设计方式不同,
rvest
无法将其格式化为正确的表格。但是使用
XML
包,您可以非常轻松地完成这项工作

library(XML)
library(dplyr)

#read required table
turl = 'http://portfolios.morningstar.com/fund/summary?t=SPY'
temp_table <- readHTMLTable(turl)[[6]]

#process table to readable format
final_table <- temp_table %>%
  select(V2, V3, V4, V5) %>%
  na.omit() %>%
  `colnames<-` (c("","% Stocks","Benchmark","Category Avg")) %>%
  `rownames<-` (seq_len(nrow(.)))
final_table

希望有帮助

您应该清楚地看到,您没有包含导致此错误的重要代码,目标表中有嵌入的图表和分组。您需要更改返回的节点,然后才能被
html\u table
接受。请参阅问题以获得一些指导。有几乎无数的R+刮片+晨星等帖子。哪些人没有可以帮助你的信息?我一直对此感到困惑,因为创建q要比实际搜索花费更多的精力。你应该清楚地看到,你没有包含导致此错误的重要代码,目标表中有嵌入的图表和分组。您需要更改返回的节点,然后才能被
html\u table
接受。请参阅问题以获得一些指导。有几乎无数的R+刮片+晨星等帖子。哪些人没有可以帮助你的信息?我一直对此感到困惑,因为创建一个q需要比实际搜索更多的精力。这太棒了。谢谢!这太棒了。谢谢!