You can do:
lapply(urls, function(url) { read_html(url) |> html_nodes("table") |> html_table() }) #> [[1]] #> [[1]][[1]] #> # A tibble: 2,687 x 29 #> `` `` `` `` `` `` `` `` Playi~1 Playi~2 Playi~3 Playi~4 #> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 Rk Player Nati~ Pos Squad Comp Age Born MP Starts Min 90s #> 2 1 Dani Aba~ es E~ FW,MF Celt~ es L~ 18 1987 1 0 13 0.1 #> 3 2 Jacques ~ fr F~ DF Nice fr L~ 28 1978 30 28 2,492 27.7 #> 4 3 Christia~ it I~ GK Tori~ it S~ 29 1977 36 36 3,235 35.9 #> 5 4 Pato Abb~ ar A~ GK Geta~ es L~ 33 1972 36 36 3,215 35.7 #> 6 5 Elvis Ab~ it I~ FW Tori~ it S~ 25 1981 29 15 1,432 15.9 #> 7 6 Nadjim A~ km C~ MF Sedan fr L~ 22 1984 17 11 1,136 12.6 #> 8 7 Nelson A~ uy U~ MF Atal~ it S~ 33 1973 5 2 121 1.3 #> 9 8 Mathias ~ de G~ DF Hamb~ de B~ 25 1981 8 4 416 4.6 #> 10 9 Éric Abi~ fr F~ DF Lyon fr L~ 26 1979 33 31 2,750 30.6 #> # ... with 2,677 more rows, 17 more variables: Performance <chr>, Performance <chr>, #> # Performance <chr>, Performance <chr>, Performance <chr>, Performance <chr>, #> # Performance <chr>, Performance <chr>, Progression <chr>, Progression <chr>, #> # Progression <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, #> # `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `` <chr>, #> # and abbreviated variable names 1: `Playing Time`, 2: `Playing Time`, #> # 3: `Playing Time`, 4: `Playing Time` #> # i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names #> #> #> [[2]] #> [[2]][[1]] #> # A tibble: 2,770 x 29 #> `` `` `` `` `` `` `` `` Playi~1 Playi~2 Playi~3 Playi~4 #> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 Rk Player Nati~ Pos Squad Comp Age Born MP Starts Min 90s #> 2 1 Jacques ~ fr F~ DF Nice fr L~ 29 1978 10 4 434 4.8 #> 3 2 Jacques ~ fr F~ DF Nürn~ de B~ 29 1978 10 9 820 9.1 #> 4 3 Ignazio ~ it I~ DF,MF Empo~ it S~ 20 1986 24 9 1,167 13.0 #> 5 4 Christia~ it I~ GK Atlé~ es L~ 30 1977 21 20 1,804 20.0 #> 6 5 Pato Abb~ ar A~ GK Geta~ es L~ 34 1972 34 34 3,046 33.8 #> 7 6 Yacine A~ ma M~ MF Stra~ fr L~ 26 1981 23 17 1,549 17.2 #> 8 7 Damià Ab~ es E~ DF,MF Betis es L~ 25 1982 26 24 2,230 24.8 #> 9 8 Éric Abi~ fr F~ DF Barc~ es L~ 27 1979 30 28 2,523 28.0 #> 10 9 Ahmed Ab~ eg E~ DF,MF Stra~ fr L~ 26 1981 2 1 91 1.0 #> # ... with 2,760 more rows, 17 more variables: Performance <chr>, Performance <chr>, #> # Performance <chr>, Performance <chr>, Performance <chr>, Performance <chr>, #> # Performance <chr>, Performance <chr>, Progression <chr>, Progression <chr>, #> # Progression <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, #> # `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `` <chr>, #> # and abbreviated variable names 1: `Playing Time`, 2: `Playing Time`, #> # 3: `Playing Time`, 4: `Playing Time` #> # i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names #> #> #> [[3]] #> [[3]][[1]] #> # A tibble: 2,796 x 29 #> `` `` `` `` `` `` `` `` Playi~1 Playi~2 Playi~3 Playi~4 #> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> #> 1 Rk Player Nati~ Pos Squad Comp Age Born MP Starts Min 90s #> 2 1 Jacques ~ fr F~ DF Vale~ fr L~ 30 1978 18 14 1,252 13.9 #> 3 2 Ignazio ~ it I~ DF,MF Tori~ it S~ 21 1986 25 21 1,913 21.3 #> 4 3 Christia~ it I~ GK Milan it S~ 31 1977 28 28 2,441 27.1 #> 5 4 Pato Abb~ ar A~ GK Geta~ es L~ 35 1972 13 13 1,083 12.0 #> 6 5 Elvis Ab~ it I~ FW Tori~ it S~ 27 1981 10 2 388 4.3 #> 7 6 Djamel A~ dz A~ MF Nant~ fr L~ 22 1986 22 12 1,139 12.7 #> 8 7 Damià Ab~ es E~ DF,MF Betis es L~ 26 1982 25 20 1,788 19.9 #> 9 8 Éric Abi~ fr F~ DF Barc~ es L~ 28 1979 25 25 2,116 23.5 #> 10 9 Fabrice ~ fr F~ MF Lori~ fr L~ 29 1979 35 35 3,060 34.0 #> # ... with 2,786 more rows, 17 more variables: Performance <chr>, Performance <chr>, #> # Performance <chr>, Performance <chr>, Performance <chr>, Performance <chr>, #> # Performance <chr>, Performance <chr>, Progression <chr>, Progression <chr>, #> # Progression <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, #> # `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `Per 90 Minutes` <chr>, `` <chr>, #> # and abbreviated variable names 1: `Playing Time`, 2: `Playing Time`, #> # 3: `Playing Time`, 4: `Playing Time` #> # i Use `print(n = ...)` to see more rows, and `colnames()` to see all variable names #>