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, но никогда не использовал его).

0 ответов

Другие вопросы по тегам