Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将HTML中的表转换为数据帧_Html_R_Web Scraping - Fatal编程技术网

将HTML中的表转换为数据帧

将HTML中的表转换为数据帧,html,r,web-scraping,Html,R,Web Scraping,我正在尝试从维基百科上刮桌子,我陷入了僵局。我以2014年世界杯足球队为例。在本例中,我想从“2014年国际足联世界杯足球队”页面的目录中提取参赛国家的名单,并将其作为向量存储。以下是我取得的成绩: library(tidyverse) library(rvest) library(XML) library(RCurl) (Countries <- read_html("https://en.wikipedia.org/wiki/2014_FIFA_World_Cup_squads")

我正在尝试从维基百科上刮桌子,我陷入了僵局。我以2014年世界杯足球队为例。在本例中,我想从“2014年国际足联世界杯足球队”页面的目录中提取参赛国家的名单,并将其作为向量存储。以下是我取得的成绩:

library(tidyverse)
library(rvest)
library(XML)
library(RCurl)

(Countries <- read_html("https://en.wikipedia.org/wiki/2014_FIFA_World_Cup_squads") %>% 
  html_node(xpath = '//*[@id="toc"]/ul') %>% 
  htmlTreeParse() %>%
  xmlRoot())
库(tidyverse)
图书馆(rvest)
库(XML)
图书馆(RCurl)
(国家%)
html_节点(xpath='/*[@id=“toc”]/ul')%>%
htmlTreeParse()%>%
xmlRoot())

这会产生一堆HTML代码,我不会在这里复制/粘贴这些代码。我特别希望提取带有标记
的所有行,如“A组”、“巴西”、“喀麦隆”等,并将它们保存为向量。什么函数可以实现这一点?

您可以使用
html\u text()


通常,要读取html文档中的表格,可以使用
html\u table()
函数,但在这种情况下,不会读取目录

url %>% 
    read_html() %>%
    html_table()
contents <- strsplit(toc, "\n")[[1]]

contents[contents != ""]

# [1] "Contents"                                   "1 Group A"                                  "1.1 Brazil"                                
# [4] "1.2 Cameroon"                               "1.3 Croatia"                                "1.4 Mexico"                                
# [7] "2 Group B"                                  "2.1 Australia"                              "2.2 Chile"                                 
# [10] "2.3 Netherlands"                            "2.4 Spain"                                  "3 Group C"                                 
# [13] "3.1 Colombia"                               "3.2 Greece"                                 "3.3 Ivory Coast"                           
# [16] "3.4 Japan"                                  "4 Group D"                                  "4.1 Costa Rica"                            
# [19] "4.2 England"                                "4.3 Italy"                                  "4.4 Uruguay"                               
# ---
# etc
url %>% 
    read_html() %>%
    html_table()