Очистка узлов HTML с нескольких страниц - PullRequest
0 голосов
/ 18 октября 2019

Я пытаюсь собрать некоторые данные для потенциального проекта статистики, но я не могу получить все узлы на страницу. Вместо этого он захватывает только первый, прежде чем перейти на следующую страницу.

library(rvest)

pages <- pages <- c("https://merrimackathletics.com/sports/" %>%
          paste0(c("baseball", "mens-basketball", "mens-cross-country") %>%
          paste0("/roster")))

Major <- lapply(pages,
         function(url){
           url %>% read_html(url) %>%
           html_node(".sidearm-roster-player-major") %>%
           html_text()
})

Впоследствии вышеприведенное возвращает только:

> Major
[[1]]
[1] "Business Adminstration"

[[2]]
[1] "Communications"

[[3]]
[1] "Global Management"

Как мне пойти индексировать узел таким образом, чтобы я получал больше, чем просто первое "основное" на страницу? Спасибо!

1 Ответ

1 голос
/ 18 октября 2019

Функция html_node извлекает только первый элемент. html_nodes будет делать то, что вы хотите.

Из документации:

html_node похоже на [[, оно всегда выделяет ровно один элемент. Если задан список узлов, html_node всегда будет возвращать список одинаковой длины, длина html_nodes может быть больше или меньше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...