Я пытаюсь программно получить все оценки за определенный день из Ссылка на NBA (я использовал 4 января 2020 года, в котором есть несколько игр). Я начал с создания списка целых чисел, чтобы обозначить количество набираемых очков:
games<- c(1:3)
Затем я использовал developer tools
из своего браузера, чтобы определить, что содержит каждая таблица (вы можете использовать selector gadget
) :
#content > div.game_summaries > div:nth-child(1) > table.team
Затем я использовал purrr::map
для создания списка таблиц для извлечения, используя games
:
map_list<- map(.x= '', paste, '#content > div.game_summaries > div:nth-child(', games, ') > table.teams',
sep = "")
# check map_list
map_list
Затем я попытался запустить этот список через for
l oop для генерации трех таблиц, используя tidyverse
и rvest
, что привело к ошибке:
for (i in map_list){
read_html('https://www.basketball-reference.com/boxscores/') %>%
html_node(map_list[[1]][i]) %>%
html_table() %>%
glimpse()
}
Error in selectr::css_to_xpath(css, prefix = ".//") :
Zero length character vector found for the following argument: selector
In addition: Warning message:
In selectr::css_to_xpath(css, prefix = ".//") :
NA values were found in the 'selector' argument, they have been removed
Для справки, если я явно обозначу html или назову точное элемент из map_list
, код работает как задумано (запустите ниже пункты для справки):
read_html('https://www.basketball-reference.com/boxscores/') %>%
html_node('#content > div.game_summaries > div:nth-child(1) > table.teams') %>%
html_table() %>%
glimpse()
read_html('https://www.basketball-reference.com/boxscores/') %>%
html_node(map_list[[1]][1]) %>%
html_table() %>%
glimpse()
Как мне сделать это со списком? Я смотрел на другие темы , но, несмотря на то, что они используют один и тот же сайт, они не являются той же проблемой.