프로젝트/사이드 프로젝트

학교 공지 사항 자동화를 해보자 - 1

Beomsu Koh 2023. 3. 22.

학교 공지 사항 자동화를 해보자 - 1

Intro. 왜 자동화를 해야 할까?

장학금이나 기타 학교에서 진행하는 프로그램들은 내게 무조건 이득이 된다.
4년 짧게 다니는 대학 생활인데 최대한 많이 얻어가야 하지 않겠나

내 하루 일과 중 하나는 학과 공지 사항을 확인하는 것이다.
아침에 연구실에 오면 직장인이 메일 보는 것처럼 뚤래뚤래 공지사항이 뜬게 있는지 보는거다

게다가 선착순이나 경쟁률 있는 것은 언제 뜰지 모르니 가끔 틈 날 때마다 들어가는데, 매우 귀찮은 일이다.
들어가야지 생각하고 들어가서 확인하는 것 자체가 에너지 낭비이다.

나의 경우, 메일에 기술 블로그와 뉴스를 구독하고 있다. 그렇다면, 학과 주요 공지사항들도 내게 메일로 보내면 되지 않을까?!
프로그래머니까 프로그래머답게 해결해보자

로직 및 요구사항

교내 주요 공지라 함은 소프트웨어 중심 사업단과 학과실에서 올리는 공지이다.
또한, 올라오는 공지들은 최신 공지부터 차례대로 올라온다.
예외 사항으로 중요 공지는 상단에 고정 되는데 이 또한 최신 공지 중 중요한 것만 체크 되기 때문에 신경 쓰지 않아도 된다

  • 크롤링 해야 할 페이지

    • 학과 홈페이지의 첫 페이지
    • 사업단 홈페이지의 첫 페이지
  • 로직

    1. 학과/사업단 홈페이지에서 공지 날짜/링크/제목 크롤링해서 저장
    2. 공지 날짜와 오늘 날짜를 비교해서 오늘 날짜만 추출
    3. 추출 된 공지를 내 구글 메일로 전송한다
    4. Github Action Crontab으로 매일 오후 18:00으로 동기화 한다

기술 스택

  • Python
  • 라이브러리
    • BS4 : 크롤링
    • re : 정규식
    • smtplib, email : 메일
    • datetime : 날짜, 시간

레퍼런스

댓글