我首先要说的是,我对XML的了解非常少。
我向你保证,直到2或3天前,以下代码才能完美运行:
library("rvest")
url<-"https://en.wikipedia.org/wiki/Opinion_polling_for_the_next_United_Kingdom_general_election"
H<-read_html(url)
table<-html_table(H, fill=TRUE)
Z<-table[1]; Z1<-Z[[1]]
然后让我继续做我想做的事,从该网页中提取第一个表并将其放在数据框Z1
中。但是,这突然停止工作,我不断收到错误消息:
Error in if (length(p) > 1 & maxp * n != sum(unlist(nrows)) & maxp * n != :
missing value where TRUE/FALSE needed
当我查看H
时,似乎不再是列表,现在看起来像这样:
{xml_document}
<html class="client-nojs" lang="en" dir="ltr">
[1] <head>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8 ...
[2] <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject ...
html_table
显然失败了。
我真的不知道从哪里开始。
答案 0 :(得分:0)
我相信你错过了在html_table函数之前解析表节点的步骤。
library("rvest")
url<-"https://en.wikipedia.org/wiki/Opinion_polling_for_the_next_United_Kingdom_general_election"
H<-read_html(url)
tables<-html_nodes(H, "table")
Z1<-html_table(tables[1], fill = TRUE)[[1]]