태스크 스케쥴러로 자동으로 R 스크립트 실행하기
2019. 6. 8. 22:48ㆍ카테고리 없음
지난 포스트에 R에서 텔레그램봇으로 메세지를 보내는 방법을 업데이트 했었다.
만약, 일정 시간마다 내가 작업한 R 스크립트를 윈도우에서 자동으로 실행하고 그 결과를 텔레그램으로 보낼 수 있다면 실시간으로 상황을 확인할 수 있을 것이다.
이 번에 작업해볼 내용은 아래와 같다.
1. 네이버 야구 메인 페이지에 있는 뉴스 20개의 URL을 수집한다
2. URL을 텔레그램봇으로 자동 전송 한다
library(tidyverse)
library(telegram.bot)
library(rvest)
# scarpping naver basellball news 20
url = 'https://sports.news.naver.com/kbaseball/index.nhn'
parsed = read_html(url)
url = parsed %>%
html_node('div.home_news') %>%
html_nodes('ul') %>%
html_nodes('a') %>%
html_attr('href') %>%
as.tibble %>%
mutate(url = paste0('https://sports.news.naver.com', value)) %>%
select(-value)
# send 20 news url to telegram
bot = Bot(token = 'API 토큰을 여기 입력')
print(bot$getMe())
updates = bot$getUpdates()
updates[[1]]$message$chat
x = url[1,1] %>% toString()
chat_id = updates[[1]]$message$chat$id
bot$sendMessage(chat_id = chat_id, text = 'hello')
for(i in seq(nrow(url))){
sender = url[i,1] %>% toString()
bot$sendMessage(chat_id = chat_id, text = sender)
}
이 파일을 'r_schedule.R'로 저장한 후 윈도우즈 태스크 스케쥴에 등록해 보자
library(taskscheduleR)
setwd("D:/r_study")
telegram.schedule = file.path('D:/r_study/r_schedule.R')
## 지금으로 부터 10초 뒤 실행하고 10분 마다 재 실행
taskscheduler_create(taskname = 'send_telegram', rscript = telegram.schedule,
schedule = 'MINUTE',
starttime = format(Sys.time() + 10, '%H:%M'),
startdate = format(Sys.time(), '%Y/%m/%d'),
modifier = 10)
taskscheduler_delete('send_telegram') # 스케쥴 삭제