Проблема с удалением веб-страниц с помощью гаджета rvest и selector - PullRequest
1 голос
/ 11 октября 2019

Я пытаюсь очистить следующий веб-сайт для черновиков данных MLB:

https://www.baseballamerica.com/draft-history/mlb-draft-database/#/

Проблема в том, что я не могу найти правильный класс для ввода в rvest:: html_nodes () для изоляции таблицы. Используя инструмент Chrome «Inspect», я попробовал каждый из классов, которые, по-видимому, идентифицировали бы таблицу:


library(tidyverse)
library(rvest)

url <- "https://www.baseballamerica.com/draft-history/mlb-draft-database/#/"

url %>% 
  read_html() %>% 
  html_nodes("table-container")

Я также попробовал «search-table draft-search-table», но я продолжаюполучить те же результаты: "{xml_nodeset (0)}". Буду очень признателен за любую помощь!

1 Ответ

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

Контент загружается динамически из вызова API, возвращающего json. Вы можете использовать httr POST запрос к API для получения информации

library(httr)

headers = c('Content-Type'='application/json')
data='{"SigningBonusMin":"0","SigningBonusMax":"0","Year":"2019","Round":"1","TeamId":"0","FourYearSchoolType":"false","JuniorCollegeType":"false","HighSchoolType":"false","OtherSchoolType":"false","OverallNumber":"0","pageId":"1","paid":"false"}'
r <- content(httr::POST(url = 'https://www.baseballamerica.com/umbraco/api/draftdatabaseapi/advancedsearch', httr::add_headers(.headers=headers), body = data, encode = "json"))$Results
print(r)
...