我正在尝试通过CBS网站抓取幻想足球的预测,但我遇到了一个问题。链接here
我已经阅读了解决方案here,但它们对我不起作用
我尝试了以下代码,该代码去年有效,但今年却出错。我假设CBS对他们的网站进行了一些更改,从而产生了影响。
qbs <- read_html(paste0("https://www.cbssports.com/fantasy/football/stats/QB/2019/1/projections/ppr")) %>%
html_nodes('table') %>%
html_table(fill = TRUE)
这是我收到的错误:
Error in if (length(p) > 1 & maxp * n != sum(unlist(nrows)) & maxp * n != :
missing value where TRUE/FALSE needed
答案 0 :(得分:2)
出现此问题是因为该表具有两个标题行。
第一标题行是一个分组的标题(“ PASSING”,“ RUSHING”,“ MISC”),其列数与其所代表的数据一样多。第二个标题行未分组,并且与数据的长度(列方向)相同。如果我们删除第一个标题行并保留第二个标题行,它将进行解析。
page <- read_html("https://www.cbssports.com/fantasy/football/stats/QB/2019/1/projections/ppr")
table <- page %>%
html_nodes('table') %>%
as.character()
grouped_header <- page %>%
html_nodes('.TableBase-headGroupTr') %>%
as.character()
table %>%
gsub(grouped_header, "", ., perl=T) %>%
read_html() %>%
html_table()