rvest: как очистить список ссылок, который отображается только после выпадающего списка
Я пытаюсь почистить статистические данные по здравоохранению из https://prog.nfz.gov.pl/APP-JGP/KatalogJGP.aspx
На странице отображаются два зависимых выпадающих списка. Источник показывает только данные для верхнего раскрывающегося списка, следующий будет динамически заполняться данными (asp) только после того, как я выберу первый раскрывающийся список. И только после того, как я сделаю выбор с обоими, я увижу список ссылок, которые я хотел бы очистить.
Мое полуавтоматическое решение: выбрать в обоих выпадающих меню, сохранить страницу и затем очистить список ссылок в автономном режиме. Мой текущий код показывает, что я понимаю, как получить данные из выпадающих списков и со страницы после выбора:
#https://prog.nfz.gov.pl/app-jgp/
#From combo boxes I choose Year 2015 kat Ia and
#A group of procedures, eg. A1- xxxxxx
#Then I save the page locally to C:/myPage/
library(tidyverse)
library(rvest)
get_id <-
function (x, myString) {
require(stringr)
str_extract(x, paste0("(?i)(?<=", myString, "\\D)\\d+"))
}
# url <- "https://prog.nfz.gov.pl/APP-JGP/KatalogJGP.aspx"
url <- "C:/myPage/Narodowy Fundusz Zdrowia.htm"
pg <- read_html(url)
# The code below gets me the list from the first combo-box
# ContentPlaceHolder2_ddlSymylacjaJGP
n_values <-
html_nodes(pg, "#ContentPlaceHolder2_ddlSymylacjaJGP option") %>%
html_attr("value")
n_descr <-
html_nodes(pg, "#ContentPlaceHolder2_ddlSymylacjaJGP option") %>%
html_text()
selCatYear <- tibble(n_values,n_descr)
# The code below gets me the list from the second combo-box
#ContentPlaceHolder2_ddlKatalogJGP
n_values <-
html_nodes(pg, "#ContentPlaceHolder2_ddlKatalogJGP option") %>%
html_attr("value")
n_descr <-
html_nodes(pg, "#ContentPlaceHolder2_ddlKatalogJGP option") %>%
html_text()
setCatJGP <- tibble(n_values,n_descr)
# The code below gets me the list of urls I want.
# ContentPlaceHolder2_blKatalogJGP
n_values <-
html_nodes(pg, "#ContentPlaceHolder2_blKatalogJGP li a") %>%
html_attr("href")
n_descr <-
html_nodes(pg, "#ContentPlaceHolder2_blKatalogJGP li a") %>%
html_text()
setSingleJGP <- tibble(n_values,n_descr)
Вопрос: Как я могу автоматизировать выбор в полях со списком (зависимый, контент, созданный динамически), чтобы получить списки ссылок? Это возможно только с Rvest и R? или нужен другой инструмент (я слышал о Selenium, но никогда не использовал его).