Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.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 Rvest R未获取内部表_Html_R_Xpath_Rvest_Magrittr - Fatal编程技术网

Html Rvest R未获取内部表

Html Rvest R未获取内部表,html,r,xpath,rvest,magrittr,Html,R,Xpath,Rvest,Magrittr,我正试图在维基百科中检索2012年奥运会奖牌表 library(rvest) library(magrittr) url <- "https://en.wikipedia.org/wiki/United_States_at_the_2012_Summer_Olympics" xpath0 <- '//*[@id="mw-content-text"]/table[1]' xpath1 <- '//*[@id="mw-content-text"]/table[

我正试图在维基百科中检索2012年奥运会奖牌表

library(rvest) 
library(magrittr)
url <- "https://en.wikipedia.org/wiki/United_States_at_the_2012_Summer_Olympics" 

    xpath0 <- '//*[@id="mw-content-text"]/table[1]'
    xpath1 <- '//*[@id="mw-content-text"]/table[2]'
    xpath2 <- '//*[@id="mw-content-text"]/table[2]/tbody/tr/td[1]'
    xpath3 <- '//*[@id="mw-content-text"]/table[2]/tbody/tr/td[1]/table'

    tb <- url %>%
      html() %>%
      html_nodes(xpath=xpath0) %>%
      html_nodes("") %>%
      html_table()
库(rvest)
图书馆(magrittr)

url具有名称的第一个表具有复杂的结构,似乎很难转换为标准格式。至少我没有成功

可通过以下方式获得按运动项目划分的奖牌数量和奖牌总数的汇总:

library(rvest) #v.0.2.0.9000
url <- "https://en.wikipedia.org/wiki/United_States_at_the_2012_Summer_Olympics" 
tb <- read_html(url) %>% html_node("table.wikitable:nth-child(2)") %>% html_table(fill=TRUE)
#> head(tb)
#   Medals by sport   NA   NA   NA    NA NA NA
#1            Sport 01 ! 02 ! 03 ! Total NA NA
#2         Swimming   16    9    6    31 NA NA
#3    Track & field    9   12    7    28 NA NA
#4       Gymnastics    3    1    2     6 NA NA
#5         Shooting    3    0    1     4 NA NA
#6           Tennis    3    0    1     4 NA NA
library(rvest)#v.0.2.0.9000
url%html\u表格(fill=TRUE)
#>总目(结核病)
#体育奖牌不,不,不
#1体育01!02 ! 03 ! 总钠
#2游泳169631NA
#3田径9 12 7 28不适用
#4体操3 1 2 6 NA NA
#5次投篮3 0 1 4 NA NA
#6网球3 01 4 NA NA
然后是另一张表格,总结了您可以获得的所有竞争对手

tb2 <- read_html(url) %>% html_node("table.wikitable:nth-child(20)") %>% html_table()
#> head(tb2)
#                        Sport Men Women Total
#1                     Archery   3     3     6
#2 Athletics (track and field)  63    62   125
#3                   Badminton   2     1     3
#4                  Basketball  12    12    24
#5                      Boxing   9     3    12
#6                    Canoeing   5     2     7
tb2%html\u节点(“table.wikitable:nth child(20)”)%>%html\u table()
#>总目(tb2)
#运动男女总数
#1射箭3 6
#2田径项目63 62 125
#3羽毛球2 1 3
#4篮球12 24
#5拳击9 3 12
#6独木舟5 2 7
这是多位奖牌获得者的名单:

tb3 <- read_html(url) %>%  html_node("table.wikitable:nth-child(8)") %>% html_table(fill=TRUE)
#> head(tb3)
#  Multiple medalists            NA   NA   NA   NA    NA NA
#1               Name         Sport 01 ! 02 ! 03 ! Total NA
#2     Michael Phelps      Swimming    4    2    0     6 NA
#3     Missy Franklin      Swimming    4    0    1     5 NA
#4    Allison Schmitt      Swimming    3    1    1     5 NA
#5        Ryan Lochte      Swimming    2    2    1     5 NA
#6      Allyson Felix Track & field    3    0    0     3 NA
tb3%html\u节点(“table.wikitable:nth child(8)”)%>%html\u表(fill=TRUE)
#>总目(tb3)
#多位奖牌获得者不,不,不
#1名运动01!02 ! 03 ! 总钠
#2迈克尔·菲尔普斯游泳4206NA
#3富兰克林小姐游泳4015北美
#4埃里森·施密特游泳3 1 5 NA
#5 Ryan Lochte游泳2 2 1 5 NA
#6 Allyson Felix田径场3 0 3北美

正如@Metrics所指出的,这实际上取决于您想要拥有哪个表。那一页上有许多表格。

对不起,我错了。我想要的表是奖牌获得者,其中标题有奖牌名称Sport Event Date。read_html()是当前的html()?当我尝试您的示例时,我收到消息>eval(expr、envir、enclose)中的错误:找不到函数“read\u html”,我在这里使用此版本的解决方案t%html\u节点(“table.wikitable:nth child(1)”)%%>%html\u table(fill=t),但是child(1)带来了3个表,我想要的是第二个表。嗨!我指出了我正在使用的
rvest
版本v0.2.0.9000,我认为这是最新的版本。该版本建议使用
read\u html()
而不是
html()
。不过,我从未注意到这两者之间的区别。不幸的是,child(1)只是我在开头提到的复杂表,我无法将其转换为合适的格式。如果我能取得一些进展,我会更新帖子。你如何找到孩子的号码?我想要的表格是“奖牌获得者”,标题上有奖牌名称“体育赛事日期”。
tb3 <- read_html(url) %>%  html_node("table.wikitable:nth-child(8)") %>% html_table(fill=TRUE)
#> head(tb3)
#  Multiple medalists            NA   NA   NA   NA    NA NA
#1               Name         Sport 01 ! 02 ! 03 ! Total NA
#2     Michael Phelps      Swimming    4    2    0     6 NA
#3     Missy Franklin      Swimming    4    0    1     5 NA
#4    Allison Schmitt      Swimming    3    1    1     5 NA
#5        Ryan Lochte      Swimming    2    2    1     5 NA
#6      Allyson Felix Track & field    3    0    0     3 NA