ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 서대전고등학교 이벤트 알리미
    컴퓨터 언어 공부/Python 2017. 9. 17. 02:44

    고등학생 신분이어서 학교 대회에 적극적으로 참여하려고는 하는데 가끔씩 홈페이지에 대회 공지가 올라왔는데도 안찾아봤다가 까먹는 경우가 종종 있어서 만들어 보았다. 사실 만든지 꽤 되었는데 그간 바빠서 미루고 미뤘다가 이제야 포스팅한다 (좀 더 솔직하게 말하자면 시험기간 돌입전 마지막 정리 포스팅이다 헤헤)

     

    소스 코드는 Github에 올려놓았다

    앞으로 프로젝트는 다 올려놓을 생각이다 (근데 그래봐야 몇개나 될런지는...)

    https://github.com/jiwon7258/sdj_event_alarm

    사실 코드하고 주석 정리를 안해놓아서 아마 보기 힘들것이다

    완전 안해놓은 것은 아닌데 중간에 주석 정리를 하다 말아서 여기저기 변수 이름을 틀리게 써놓은 곳이 많아서...

    그냥 대충 아래에 써놓은 원리만 이해하셔도 이걸 보는 여러분은 다 구현하실 것이라 믿는다

     

     

     

    설명을 하자면

     

    1. 서대전고등학교 홈페이지를 주기적으로 모니터링한다

    beautifulsoup 와 while문을 이용해 1시간 간격으로 웹페이지를 파싱하도록 해놓았다.

     

    2. 웹페이지에 변경점이 있으면 이를 저장한다

    어차피 1시간 내에 게시물이 10개씩 올라오고 하는 것은 아니니까 첫페이지만 파싱을 하도록 설정해 놓았다

    처음 실행시 파싱한 데이터를 origin.txt에 저장한다.

    변경점이 발생하면 origin.txt를 새로운 전체 파일로 교체한 후 변경점만 diff.txt에 저장한다

     

    3. diff.txt에 있는 변경점을 읽어 이메일로 전송한다

    파이썬의 SMTP 모듈을 통해 구현했고 이걸 위해 sdjevent@gmail.com 으로 구글 계정을 새로 팠다.

     

    지금은 나만 쓰고 있지만 곧 학생들에게도 배포할 예정이다

     

    실제로 서버에서 돌리면 저렇게 푸쉬 알림이 온다

     

    내가 만든 프로그램을 내가 유용하게 쓰는 것은 처음이라 상당히 만족스럽다

     

    다음에는 카카오톡 봇을 구현하려고 생각 중에 있다

Designed by Tistory.