来自Wikipedia的R中的Web抓取错误

时间:2019-05-02 15:26:48

标签: r web-scraping

我在从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

2 个答案:

答案 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)