我在从Wikipedia抓取Web信息时遇到问题,并收到以下错误消息:
if(length(p)> 1&maxp * n!= sum(unlist(nrows))&maxp * n!=:
时出错需要TRUE / FALSE时缺少值
不确定如何解决此问题,请帮帮我
url <- 'https://en.wikipedia.org/wiki/List_of_S%26P_500_companies'
wiki <- read_html(url) %>% html_nodes('table') %>% html_table(fill = TRUE)
names(wiki[[1]])
输出错误:
Error in if (length(p) > 1 & maxp * n != sum(unlist(nrows)) & maxp * n != :
missing value where TRUE/FALSE needed
答案 0 :(得分:1)
问题是此网页上有两个表,您应指定要抓取的表。假设您想要第一个可以做的事情:
read_html(url) %>%
html_nodes('table') %>%
`[[`(1) %>% ## extract first table
html_table(fill = TRUE)
答案 1 :(得分:1)
假设您要使用大表,可以使用其ID。 ID应该是元素的最快选择器方法
require(rvest)
r <- read_html("https://en.wikipedia.org/wiki/List_of_S%26P_500_companies") %>%
html_nodes("#constituents") %>%
html_table()
print(r)