Я пытаюсь очистить несколько страниц спортивных данных, используя пакеты 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
В конечном итоге я хочу построить функцию очистки, чтобы получить все позиции с одинаковыми столбцами, такими как QB, RB, WR и TE, за все недели 2019. (хочу добавить третью переменную для склеивания {год} в конце концов, но сначала нужно получить это.
Опять же, я думаю, что проблема связана с шаткими заголовками таблицы на сайте, так как некоторые один ряд, а остальные заголовки - два ряда.