Amigos,
estava tentando baixar uns dados usando o RSelenium e consigo pegar os dados da tabela do site do sofascore (https://www.sofascore.com/tournament/football/brazil/brasileiro-serie-a/325 ) em forma de lista abaixo. O que devo fazer pra transformar em uma tabela dentro de um dataframe? Pensei numa solução que pode funcionar, mas não é nada prática… será que alguém tem alguma ideia mais simples?
"
“# Team Name Goals Succ. dribbles Tackles Assists Accurate passes % Rating\n21\nPepê 3 24 5 1 79.64 7.21\n22\nClaudinho 3 24 12 1 80.6 7.21\n23\nFelipe Alves 0 1 1 0 72.97 7.21\n24\nEdson 1 8 30 1 88.19 7.18\n25\nRaphael Veiga 3 2 1 0 85.4 7.18\n26\nJuninho 1 15 16 2 88.77 7.18\n27\nSabino 3 7 16 0 83.72 7.18\n28\nFelipe 1 17 15 0 89.58 7.15\n29\nElias 0 2 4 0 86.05 7.15\n30\nMarcos Rocha 0 1 21 0 80.59 7.15\n31\nFernando Prass 0 0 0 0 64.59 7.15\n32\nJunior Alonso 0 5 25 1 86.35 7.14\n33\nVitinho 2 10 5 1 80.69 7.14\n34\nYeferson Soteldo 1 24 3 2 78.51 7.14\n35\nGuga 1 6 23 1 86.5 7.14\n36\nNathan 2 1 4 1 80.26 7.13\n37\nVladimir 0 0 0 0 80.82 7.13\n38\nGil 1 0 14 1 88.33 7.12\n39\nRobinho 0 3 3 2 81.12 7.12\n40\nTinga 0 3 8 1 75.5 7.12”
"
clente
Outubro 6, 2020, 9:19pm
2
Roberto_Padovani,
Para poder ajudar, preciso de algumas informações a mais. Pode passar o código que você usa para obter essa lista? A lista é retornada exatamente assim pelo seu código ou ela ficou com essa formatação depois de colar aqui no Discourse?
To usando o selenium pra poder alterar as páginas da tabela, mas antes queria transformar esses dados em tabela…
require(RSelenium)
remDr$navigate(“https://www.sofascore.com/tournament/football/brazil/brasileiro-serie-a/325 ”)
webElem2 <- remDr$findElement(using = “css selector”, ‘#__next > main > div > div.Content__PageContainer-sc-14479gi-0.iPKjyT > div.Grid-sc-1kxv72p-0.GIRaO > div.Col-pm5mcz-0.jrtcdI > div.u-mT12 > div > div.Tabs__Content-vifb7j-1.jppjfQ > div > div > table’)
t <- webElem2$getElementText()
clente
Outubro 6, 2020, 11:10pm
4
Acho que o jeito mais simples é usando a função rvest::html_table()
. Abaixo segue um exemplo reprodutível:
require(RSelenium)
library(magrittr)
remDr <- rsDriver(browser = "firefox")
remDr$client$navigate("https://www.sofascore.com/tournament/football/brazil/brasileiro-serie-a/325")
remDr$client$getPageSource() %>%
purrr::pluck(1) %>%
xml2::read_html() %>%
rvest::xml_nodes("div.Tabs__Content-vifb7j-1.jppjfQ > div > div > table") %>%
rvest::html_table() %>%
purrr::pluck(1) %>%
dplyr::as_tibble()
#> # A tibble: 20 x 9
#> `#` Team Name Goals `Succ. dribbles` Tackles Assists `Accurate passe…
#> <int> <lgl> <chr> <int> <int> <int> <int> <dbl>
#> 1 1 NA Paol… 3 3 1 1 68.2
#> 2 2 NA Edua… 1 0 1 0 73.0
#> 3 3 NA Luan… 0 0 1 0 47.2
#> 4 4 NA Mari… 8 18 15 4 79.7
#> 5 5 NA Fláv… 0 1 9 0 82
#> 6 6 NA Gior… 3 17 13 3 76.8
#> 7 7 NA Viní… 4 9 2 2 79.3
#> 8 8 NA Math… 0 0 1 1 89.0
#> 9 9 NA Jean… 0 11 5 0 90.9
#> 10 10 NA Jand… 0 0 0 0 77.5
#> 11 11 NA Robe… 0 0 0 0 68
#> 12 12 NA Pedr… 0 1 14 0 89.6
#> 13 13 NA Dani… 1 10 8 0 90.0
#> 14 14 NA Alis… 1 23 9 3 84.3
#> 15 15 NA Keno 7 36 7 1 68.9
#> 16 16 NA Vict… 2 6 17 0 83.4
#> 17 17 NA Thia… 0 0 4 0 91.1
#> 18 18 NA Thia… 10 9 7 3 69.0
#> 19 19 NA Fili… 1 13 18 0 89.3
#> 20 20 NA Nenê 5 4 7 1 79.5
#> # … with 1 more variable: Rating <dbl>
Created on 2020-10-06 by the reprex package (v0.3.0)
1 curtida
Valeu! Vou jogar aqui pra testar!!!