프로젝트

학교 공지 사항 자동화를 해보자 - 5 Intro. Github Action… 완전 혜자다 Github Action은 깃허브에서 제공하는 CI/CD 등의 자동화를 위해 지원하는 기능이다. 나의 경우, Crontab 용도로 사용 할 것이다. 기존에 구글 클라우드 등에서 스크립트를 계속 돌며, 시간을 체크 했는데 자원 낭비라 생각이 들어, Github Action Crontab을 생각했다 지금 만들고 있는 간단한 스크립트 위주의 봇 경우 깃허브 액션으로 돌리면 클라우드 비용도 안들고 괜찮은 듯하다 진행 방법 1. 레퍼지터리에 .github/workflows 생성 .github/workflows 디렉터리를 생성하고 auto.yml로 파일을 생성한다. 2. auto.yml 내용 채우기 name: Auto Pos..
학교 공지 사항 자동화를 해보자 - 4 Intro. 이제 메일로 전송해보자! 이메일에 담을 내용은 이제 모두 준비가 되었다! smtp와 email 라이브러리를 사용하면 파이썬으로 구글 이메일을 전송 할 수 있다. 주의 해야 할 점은 구글 기준으로 앱 비밀번호를 생성해서 넣어야 한다. 일반 비밀번호를 입력하면 에러가 발생한다 또 신경 썼던게 있다면, 환경 변수로 내 개인 정보를 감춘 것이다. 나중에 github action을 쓸 때도 마찬가지고, 개인 정보를 추상화하는 것은 기본이기에 os.environ을 사용해서 개인 정보를 숨겼다 아래 코드를 보면 알 수 있지만, 보내는 사람,받는 사람, 제목 등을 입력 할 수 있다. 앞서 말한 앱 비밀번호만 유의하자 예외 처리는 메일 발송 과정에서 전송 실패 등의 이..
학교 공지 사항 자동화를 해보자 - 3 Intro. 사업단 공지 데이터 추출을 해보자 앞선 학과 공지와 같이 리스트 형태로 공지를 뿌리고 있음을 확인 할 수 있다. 보다보니 게시판 형태라 이런 패턴으로 데이터를 뿌리는 것은 당연하다 역시나 개발자 도구를 켜서 CSS 셀렉터를 추출해서, 리스트의 위치를 특정해야 한다 html 코드를 보니 역시나 tr로 뿌리고 있다. 대신 td 태그 내의 내용물이 조금씩 다르다 학과 공지 사항에서 데이터를 추출한 것과 비슷한 맥락으로 코드를 짜면 될거 같다 코드 import requests import re from bs4 import BeautifulSoup from datetime import datetime url = 'https://www.sojoong.kr/www/..
학교 공지 사항 자동화를 해보자 - 2 Intro. 학과 공지 사항에서 데이터 추출 해보자 위와 같이 리스트 형태로 공지를 뿌리고 있음을 확인했다. 먼저 개발자 도구를 켜서 CSS 셀렉터를 추출해서, 리스트의 위치를 특정해야 한다 tr 태그 내에 notice 클래스 안에 공지들이 들어 있음을 볼 수 있다 오른쪽 마우스 클릭을 해서 css 셀렉터를 추출한다 코드 import requests import re from bs4 import BeautifulSoup from datetime import datetime # 웹페이지에서 데이터를 가져올 URL url = 'https://sw.jnu.ac.kr/sw/8250/subview.do' today = str(datetime.now().date()) toda..
학교 공지 사항 자동화를 해보자 - 1 Intro. 왜 자동화를 해야 할까? 장학금이나 기타 학교에서 진행하는 프로그램들은 내게 무조건 이득이 된다. 4년 짧게 다니는 대학 생활인데 최대한 많이 얻어가야 하지 않겠나 내 하루 일과 중 하나는 학과 공지 사항을 확인하는 것이다. 아침에 연구실에 오면 직장인이 메일 보는 것처럼 뚤래뚤래 공지사항이 뜬게 있는지 보는거다 게다가 선착순이나 경쟁률 있는 것은 언제 뜰지 모르니 가끔 틈 날 때마다 들어가는데, 매우 귀찮은 일이다. 들어가야지 생각하고 들어가서 확인하는 것 자체가 에너지 낭비이다. 나의 경우, 메일에 기술 블로그와 뉴스를 구독하고 있다. 그렇다면, 학과 주요 공지사항들도 내게 메일로 보내면 되지 않을까?! 프로그래머니까 프로그래머답게 해결해보자 로직 ..
berom
'프로젝트' 카테고리의 글 목록 (4 Page)