Содержимое динамически обновляется с помощью запросов xhr POST, когда вы делаете свой выбор и нажимаете Поиск. Вы можете использовать вкладку сети, чтобы анализировать эти запросы и воспроизводить их, не прибегая к селену (в качестве альтернативы). Вам нужно будет выбрать параметры параметров с начальной страницы.
Ниже я покажу вам, как сделать запрос на определенный почтовый индекс, а также как узнать все почтовые индексы и соответствующие им параметры для использовать в запросе. Последний должен исходить из исходного URL.
library(httr)
library(rvest)
data = list(
'id' = '{"ids":["315"]}', # zip 27006 is id 315 seen in value attribute of checkbox node
'timeIntervalId' = '18',
'centerId' = '7',
'type' = 'Z'
)
#post request that page makes using your filter selections e.g. zip code
r <- httr::POST(url = 'https://nc.211counts.org/dashBoard/barChart', body = data)
page <- read_html(r)
categories <- page %>% html_nodes(".categoriesDiv .toolTipSubCategory, #totalLabel") %>% html_text
colNodes <- page %>% html_nodes(".categoriesDiv .value")
percentages <- colNodes %>% html_attr('data-percentage')
counts <- colNodes %>% html_attr('data-value')
df <- as.data.frame(cbind(categories, percentages, counts))
print(df)
#Lookups e.g. zip codes. Taken from initial url
initial_page <- read_html('https://nc.211counts.org/')
ids <- initial_page %>% html_nodes('.zip [value]') %>% html_attr('value')
zips <- initial_page %>% html_nodes('.zip label') %>% html_text() %>% trimws()
print(ids[match('27006', zips)])