※Shiny アプリを収集してツイートする Twitter Bot 作りました
https://twitter.com/ShinyappsRecent
shinyapps.io で公開されている Shiny アプリを収集しようと思って、rvest で Google の検索結果をクローリングしようとしたら、403 Forbidden が出てしまいます。
仕方がないので Custom Search API を使って収集してみました。
ただし、API 制限が強いので 100 件しか集められなった。
R
library(dplyr)
library(jsonlite)
library(stringr)
start_seq <- seq(1, 100, by = 10)
cx <- "012116360379294605888:vh3a8gftaj4"
key <- {YOUR_API_KEY}
result <- data.frame()
for(start in start_seq) {
cat(start, "/ 100\n")
url <- sprintf("https://www.googleapis.com/customsearch/v1?q=shiny&start=%d&cx=%s&key=%s", start, cx, key)
json <- fromJSON(url)
Sys.sleep(1)
result <- rbind(result, data.frame(title=json$items$title, link=json$items$link))
}
result <- result %>% mutate(user=result$link %>% str_split("(\\/|\\.)") %>% Map(function(x) x[3], .) %>% unlist)
write.csv(result, "shinyapps_sites.csv", row.names=FALSE)
結果のファイルはこちらです。
追記
url
に sort=date
を付けて新しい順で検索した結果を追加
結果のファイルはこちらです。