본문 바로가기
Project

파이썬으로 내가 원하는 공지 알림 받기 [응용편]

by 배애앰이 좋아 2020. 2. 10.
반응형

앞편 제가 한 "파이썬으로 영화 예매 오픈 알리미 만들기"응용하여 만들어본 버전입니다.

왜 원하는 공지 알림이 되었나면.... 어마마마께서 도서관 공지에서 확인하고 싶은 공지가 있는데 언제 뜨는 지 몰라서 일일이 확인하기 귀찮다고 하십니다. 그래서 이번에 사용한 사이트는 

https://www.gwangjinlib.seoul.kr/gjinfo/menu/10082/bbs/20003/bbsPostList.do 

 

광진정보도서관

 

www.gwangjinlib.seoul.kr

이곳에서 첫 페이지 공지사항 타이틀만 쭉 얻어왔습니다. 몇 번째 페이지까지 긁어올까 하다가 새롭게 뜬 공지가 1페이지를 넘어갈 일이 별로 없다고 생각해서 일단은 첫 번째이지만 하였습니다. 그 다음은 긁어온 페이지에서 원하는 공지 키워드가 있는지 확인할 차례입니다. 이번 키워드는 '자서전' 이었습니다.

 

import requests
import telegram
from bs4 import BeautifulSoup
from apscheduler.schedulers.blocking import BlockingScheduler

bot = telegram.Bot(token = '??')
url = 'https://www.gwangjinlib.seoul.kr/gjinfo/menu/10082/bbs/20003/bbsPostList.do'

def job_function():
    html = requests.get(url)
    soup = BeautifulSoup(html.text, 'html.parser')
    title_list = soup.select('td.title')
    num = 0
    for i in title_list:
        #print(i.select('a')[0].text.strip())
        title = i.select('a')[0].text.strip()
        #bot.sendMessage(chat_id = ??, text = title)
        if '자서전' in title:
            bot.sendMessage(chat_id = ??, text = "자서전 관련 공지가 올라왔습니다.")
            num = 1
            sched.pause()
    #if num == 0:
    #    bot.sendMessage(chat_id = ??, text = "자서전 관련 공지가 없습니다")
        
sched = BlockingScheduler()
sched.add_job(job_function, 'interval', seconds = 3600)
sched.start()

한 시간마다 타이틀을 긁어와서 자서전 관련 공지가 있는지 없는지를 확인했습니다. 앞에서 한 코드랑 거의 변하는 것이 없네요. 밑에는 관련 텔레그램 사진들입니다.

 

혹시 궁금하신 점이 있으시면 댓글 남겨주시면 답해드리겠습니다.

반응형

댓글