Home > Enterprise >  Webscrape Table from FantasyLabs
Webscrape Table from FantasyLabs

Time:11-04

I am trying to webscrape historical DFS NFL ownership from fanatsylabs.com using Rselenium. I am able to navigate to the page and even able to highlight the element I am trying to scrape, but am coming up with an error when I put it into a table.

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘readHTMLTable’ for signature ‘"webElement"’

I have looked up the error but cannot seem to find a reason why. I am essentially trying to follow this stack overflow example for this web scraping problem. Would someone be able to help me understand why I am not able to scrape this table and what I could do differently in order to do so?

here is my full code:

library(RSelenium)
library(XML)
library(RCurl)

# start the Selenium server
rdriver <- rsDriver(browser = "chrome",
                    chromever  = "106.0.5249.61",
)

# creating a client object and opening the browser
obj <- rdriver$client

# navigate to the url
appURL <- 'https://www.fantasylabs.com/nfl/contest-ownership/?date=10112022'
obj$navigate(appURL)
obj$findElement(using = 'xpath', '//*[@id="ownershipGrid"]')$highlightElement()
tableElem <- obj$findElement(using = 'xpath', '//*[@id="ownershipGrid"]')
projTable <- readHTMLTable(tableElem, header = TRUE, tableElem$getElementAttribute("outerHTML")[[1]])
dvpCTable <- projTable[[1]]
dvpCTable

CodePudding user response:

library(tidyverse)
library(httr2)

"https://www.fantasylabs.com/api/contest-ownership/1/10_12_2022/4/75377/0/" %>% 
  request() %>% 
  req_perform() %>%  
  resp_body_json(simplifyVector = TRUE) %>%  
  as_tibble

#> # A tibble: 43 x 4
#>    Prope~1 $Fant~2 $Posi~3 $Play~4 $Team $Salary $Actu~5 Playe~6 SortV~7 Fanta~8
#>      <int>   <int> <chr>   <chr>   <chr>   <int>   <dbl>   <int> <lgl>     <int>
#>  1   50882 1376298 TE      Albert~ "DEN"    2800    NA     50882 NA      1376298
#>  2   51124 1376299 TE      Andrew~ "DEN"    2500     1.7   51124 NA      1376299
#>  3   33781 1385590 RB      Austin~ "LAC"    7500    24.3   33781 NA      1385590
#>  4   55217 1376255 QB      Brett ~ "DEN"    5000    NA     55217 NA      1376255
#>  5    2409 1376309 QB      Chase ~ "LAC"    4800    NA      2409 NA      1376309
#>  6   40663 1385288 WR      Courtl~ "DEN"    6100     3.4   40663 NA      1385288
#>  7   50854 1376263 RB      Damare~ "DEN"    4000    NA     50854 NA      1376263
#>  8    8580 1376342 WR      DeAndr~ "LAC"    3600     4.7    8580 NA      1376342
#>  9    8472 1376304 D       Denver~ "DEN"    2500     7      8472 NA      1376304
#> 10   62112 1376262 RB      Devine~ ""       4000    NA     62112 NA      1376262
#> # ... with 33 more rows, 34 more variables:
#> #   Properties$`$5 NFL $70K Flea Flicker [$20K to 1st] (Mon-Thu)` <dbl>,
#> #   $Average <dbl>, $Volatility <lgl>, $GppGrade <chr>, $MyExposure <lgl>,
#> #   $MyLeverage <lgl>, $MyLeverage_rnk <lgl>, $MediumOwnership_pct <lgl>,
#> #   $PlayerId_rnk <int>, $PlayerId_pct <dbl>, $FantasyResultId_rnk <int>,
#> #   $FantasyResultId_pct <dbl>, $Position_rnk <lgl>, $Position_pct <lgl>,
#> #   $Player_Name_rnk <lgl>, $Player_Name_pct <lgl>, $Team_rnk <lgl>, ...

Created on 2022-11-03 with reprex v2.0.2

  • Related