見出し画像

RでDMvaultサイトの情報をスクレイピングしてツイートするまで


気が向いたらまた触るかもしれないので、備忘録的に置いておきます。この方法だと、ツイートする際あらかじめツイッターにログインしておく必要があります。


####################################################
install.packages("XML")
install.packages("dplyr")
install.packages("rvest")
install.packages("stringr")
library("rvest")
library("XML")
library(dplyr)
library(stringr)
#毎日数字変わるやつの加算用 
num.today <- as.numeric(Sys.Date())
num <- num.today - 13672
#数値をURLに反映させて読み込み 
URL <- paste0("https://dmvault.ath.cx/duel/tournament_history.php?tournamentId=",num)
html <- read_html(URL)
#ちゃんと読み込めそうか確認 
results <- html %>%
 html_table()
#デッキタイプデータの抽出 
type <- html %>%
 html_nodes(css = ".fontS") %>%
 html_text() %>%
 str_replace_all(pattern = "(.*?)", replacement = "") %>%
 str_replace_all(pattern = "(.*", replacement = "")


#グラフ化もろもろ 
type.Freq <- as.data.frame(table(type))
data <- type.Freq[order(type.Freq$Freq, decreasing = T),]
data$Freq <- as.numeric(data$Freq)
data$type <- as.character(data$type)
par(mar = c(12, 4, 4, 2))
#確認
barplot(data$Freq, names.arg = data$type, ylab= "プレイヤー数", cex.lab=0.8, las=3)


####################################
####################################
install.packages("rtweet")
library("rtweet")

####
num <- as.numeric(Sys.Date())-1
date <- as.Date(num, origin = "1970-01-01")

## crate temporary file name
tmp <- tempfile(fileext = ".png")
## save as png
png(tmp, height=1440, width=1440, res=216)
par(mar = c(10, 5, 5, 5))
barplot(data$Freq, names.arg = data$type, ylab= "プレイヤー数", cex.lab=0.8, las=3,
    main = paste(date,"のvault大会デッキ別参加者数") )
dev.off()

#
post_tweet(
 status = data,
 media = tmp,
 token = NULL,
 in_reply_to_status_id = NULL,
 destroy_id = NULL,
 retweet_id = NULL,
 auto_populate_reply_metadata = FALSE
)


####################################################



先にパッケージをまとめてダウンロードするのダサいのは分かってます()

この記事が気に入ったらサポートをしてみませんか?