在R中使用Rvest和Glue包进行抓取

我正在尝试使用rvest和glue包抓取多页体育数据。我在嵌套方面遇到了问题,我想这是因为网站上的表格有一个两行的标题(有些标题是一行,有些是两行)。这是我开始编写的代码。我检查了一下,以确保该网站允许使用python进行抓取,并且一切正常。

library(tidyverse) 
library(rvest) # interacting with html and webcontent
library(glue)

网页:https://fantasy.nfl.com/research/scoringleaders?position=1&sort=pts&statCategory=stats&statSeason=2019&statType=weekStats&statWeek=1

用于抓取所选周1:17和位置1:4的函数:

salary_scrape_19 <- function(week, position) {

Sys.sleep(3)  

cat(".")

url <- glue("https://fantasy.nfl.com/research/scoringleaders?position={position}&sort=pts&statCategory=stats&statSeason=2019&statType=weekStats&statWeek={week}")
read_html(url) %>% 
    html_nodes("table") %>% 
    html_table() %>%
    purrr::flatten_df() %>% 
    #set_names(need to clean headers before I can set this)
}

scraped_df <- scaffold %>% 
mutate(data = map2(week, position, ~salary_scrape_19(.x, .y))) 

scraped_df

最终,我想构建一个抓取函数来获得2019年所有周的相同列的所有位置,即QB,RB,WR和TE。(我想最终添加第三个变量到glue {year},但需要先获得这个变量。

同样,我认为这个问题与网站上表格的不稳定标题有关,因为有些标题是一行,另一些标题是两行。

转载请注明出处:http://www.intsu.net/article/20230526/1718211.html