library(httr)
library(rvest)
#> Loading required package: xml2
res <- read_html("https://mutable-instruments.net/modules/")
available_modules <- res %>%
html_node("div.Grid-container[data-category='all']") %>%
html_nodes("a.Grid-cell")
# discontinued
discontinued_modules <- res %>%
html_node("div.Grid-container.Grid-container--discontinued[data-category='all']") %>%
html_nodes("a.Grid-cell")
extract_one_cell <- function(x) {
link <- paste0("https://mutable-instruments.net", html_attr(x, "href"), "open_source/")
name <- x %>% html_node("div.Grid-moduleName") %>% html_text()
title <- x %>% html_node("div.Grid-moduleTitle") %>% html_text()
list(name = name, title = title, link = link)
}
df1 <- purrr::map_dfr(available_modules, extract_one_cell)
df1$discontinued <- "no"
df2 <- purrr::map_dfr(discontinued_modules, extract_one_cell)
df2$discontinued <- "yes"
df <- dplyr::bind_rows(df1, df2)
knitr::kable(df)
Created on 2019-07-15 by the reprex package (v0.3.0)