无法使用R从网页中抓取第二个表

eit6fx6z  于 2023-01-10  发布在  其他
关注(0)|答案(1)|浏览(116)

I am trying to scrape the second table "Player Standard Stats" on this web page in R: "https://fbref.com/en/comps/9/stats/Premier-League-Stats#stats_standard"
我使用下面的代码:

url <- "https://fbref.com/en/comps/9/stats/Premier-League-Stats#stats_standard"

xG_ind <- url %>% 
  xml2::read_html() %>%
  rvest::html_nodes('table') %>%
  html_table() %>%
  .[[1]]

这只会让我刮到页面上的第一个表,"小队标准统计"。请你能提供如何获得第二个表的建议吗?

j5fpnvbx

j5fpnvbx1#

  • Player Standard Stats * 表是作为注解掉的HTML块提供的,因此它将被rvest忽略。可能最简单(或者只是简单的懒惰)的方法是盲目地从源HTML字符串中删除所有HTML注解标记并解析结果。在这个特定的情况下,它似乎起作用了:
library(rvest)
library(httr)

url <- "https://fbref.com/en/comps/9/stats/Premier-League-Stats#stats_standard"

html_resp <- GET(url)
html <- content(html_resp, as = "text") %>% 
  stringr::str_remove_all("(<!--|-->)") %>% 
  read_html()

html %>% 
  html_element("table#stats_standard") %>% 
  html_table()
#> # A tibble: 508 × 33
#>    ``    ``        ``    ``    ``    ``    ``    Playi…¹ Playi…² Playi…³ Playi…⁴
#>    <chr> <chr>     <chr> <chr> <chr> <chr> <chr> <chr>   <chr>   <chr>   <chr>  
#>  1 Rk    Player    Nati… Pos   Squad Age   Born  MP      Starts  Min     90s    
#>  2 1     Brenden … us U… MF,FW Leed… 22-0… 2000  17      17      1,423   15.8   
#>  3 2     Che Adams sct … FW    Sout… 26-1… 1996  17      15      1,336   14.8   
#>  4 3     Tyler Ad… us U… MF    Leed… 23-3… 1999  15      15      1,346   15.0   
#>  5 4     Tosin Ad… eng … DF    Fulh… 25-1… 1997  12      11      991     11.0   
#>  6 5     Nayef Ag… ma M… DF    West… 26-2… 1996  2       1       166     1.8    
#>  7 6     Rayan Aï… fr F… DF    Wolv… 21-2… 2001  13      7       749     8.3    
#>  8 7     Kristoff… no N… DF    Bren… 24-2… 1998  6       6       502     5.6    
#>  9 8     Manuel A… ch S… DF    Manc… 27-1… 1995  11      10      926     10.3   
#> 10 9     Nathan A… nl N… DF    Manc… 27-3… 1995  11      10      841     9.3    
#> # … with 498 more rows, 22 more variables: Performance <chr>,
#> #   Performance <chr>, Performance <chr>, Performance <chr>, Performance <chr>,
#> #   Performance <chr>, Performance <chr>, `Per 90 Minutes` <chr>,
#> #   `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>,
#> #   `Per 90 Minutes` <chr>, Expected <chr>, Expected <chr>, Expected <chr>,
#> #   Expected <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>,
#> #   `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, …

创建于2023年1月9日,使用reprex v2.0.2

相关问题