こういう話がある。
@kazutan たぶんこのreverse depends、reverse importsをシラミつぶしに見れば...(しろめ http://t.co/2nDcktmBO1
— Hiroaki Yutani (@yutannihilation) 2015, 4月 16
このページ、スクレイピングすればリストぐらいは簡単に作れるのではないだろうか。
というわけで
R
library(rvest)
pkg_name <- "ggplot2"
url <- sprintf("http://cran.r-project.org/web/packages/%s/index.html", pkg_name)
html <- html(url)
depends <- html %>%
html_nodes(xpath = '/html/body/table[3]/tr[1]/td[2]/a') %>%
html_text
imports <- html %>%
html_nodes(xpath = '/html/body/table[3]/tr[2]/td[2]/a') %>%
html_text
targets <- c(depends, imports)
library(lambdaR)
result <- targets %>% Map_(pkg_name: {
cat(pkg_name, "\n")
url <- sprintf("http://cran.r-project.org/web/packages/%s/index.html", pkg_name)
Sys.sleep(1)
html <- html(url)
title <- html %>%
html_nodes(xpath = '/html/body/h2') %>%
html_text
desc <- html %>%
html_nodes(xpath = '/html/body/p') %>%
html_text
data.frame(name=pkg_name, title, desc)
}) %>% Reduce_(rbind)
write.csv(result, "ggplot2_extend.csv", row.names=FALSE)
結果はこちら
Enjoy!