[개인프로젝트] 수원시 공고알림 크롤링 및 메일링 프로그램 제작

2024. 2. 10. 12:33·개인 프로젝트/토이 프로젝트
반응형

수원시 공고 사이트에서 원하는 정보가 새로 올라왔을 때, 해당 정보를 메일로 받는 프로그램을 제작해보았다.

 

https://www.suwon.go.kr/web/saeallOfr/BD_ofrList.do?q_currPage=1&q_sortName=&q_sortOrder=&q_rowPerPage=&q_searchKey=SJ&q_searchVal=

 

공고/고시/입법예고 : HOME > 수원소식 > 공고/고시/입법예고

8792 수원시 장안구 파장동 공고 제2024-13호 주민등록신고 미이행자에 대한 최고공고 파장동 2024-02-08 2024-02-08 ~ 2024-02-26 24 8791 수원시 영통구 공고 제2024-75호 2024년 경로당 활성화 문화교실 강사모

www.suwon.go.kr

 

크롤링, 메일링 모두 파이썬으로 작업했고, 정기적으로 크롤링하고 메일링하는 작업은 개인 서버에 crontab 으로 등록해두었다.

 

import requests
import smtplib
from bs4 import BeautifulSoup
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText


response = requests.get("https://www.suwon.go.kr/web/saeallOfr/BD_ofrList.do?q_currPage=1&q_sortName=&q_sortOrder=&q_rowPerPage=20&q_searchKey=SJ&q_searchVal=%EB%B6%84%EC%96%91")
html = response.text

soup = BeautifulSoup(html, 'html.parser')
results = soup.select('.p-table > tbody > tr')
send_msg = ""
number = 1
for result in results:
    title = result.select_one('.p-subject').text.strip()
    link = result.select_one('.p-subject > a')['href']
    date = result.select('td')[4].text.strip()

    send_msg += f"{number}. {title}"
    send_msg += '\n'
    send_msg += f"https://www.suwon.go.kr/web/saeallOfr/{link}"
    send_msg += '\n'
    send_msg += date
    send_msg += '\n\n'

    number += 1

gmail_smtp = "smtp.gmail.com"
gmail_port = 465
smtp = smtplib.SMTP_SSL(gmail_smtp, gmail_port)

my_account = "이메일"
my_password = "앱 비밀번호"
smtp.login(my_account, my_password)

to_mail = "전송할 이메일"

msg = MIMEMultipart()
msg["Subject"] = "수원시청 분양 공고 메일 현황 전송"
msg["From"] = my_account
msg["To"] = to_mail

content = send_msg
content_part = MIMEText(content, "plain")
msg.attach(content_part)

smtp.sendmail(my_account, to_mail, msg.as_string())
smtp.close()

 

위와 같이 간단히 작성하였다.

 

 

이렇게 메일이 온다.

 

crontab 을 이용해 파이썬 프로그램을 실행시키는 스크립트를 매 정시마다 실행시키도록 하였다.

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'개인 프로젝트 > 토이 프로젝트' 카테고리의 다른 글

[개인프로젝트] BOJ 크롤링을 통한 동아리 출석체크 보조 프로그램 제작  (0) 2021.01.10
[개인프로젝트] tkinter로 GUI 입힌 tcp/ip 소켓 통신 프로그램 만들기  (3) 2020.08.07
'개인 프로젝트/토이 프로젝트' 카테고리의 다른 글
  • [개인프로젝트] BOJ 크롤링을 통한 동아리 출석체크 보조 프로그램 제작
  • [개인프로젝트] tkinter로 GUI 입힌 tcp/ip 소켓 통신 프로그램 만들기
에버듀
에버듀
개발은 좋은데 뭘로 개발할까
  • 에버듀
    Blog. 에버듀
    에버듀
  • 전체
    오늘
    어제
    • 분류 전체보기 (615)
      • 개인 프로젝트 (43)
        • 토이 프로젝트 (3)
        • [2020] 카카오톡 봇 (9)
        • [2021] 코드악보 공유APP (22)
        • [2022] 유튜브 뮤직 클론코딩 (9)
        • [2025] 한글 SQL 데이터베이스 (0)
      • 팀 프로젝트 (22)
        • [2020] 인공지능 숫자야구 (4)
        • [2022] OSAM 온라인 해커톤 (10)
        • [2024] GDSC 프로젝트 트랙 (6)
        • [2025] 큰소리 웹 페이지 (2)
      • CS (335)
        • 자료구조 (19)
        • 어셈블리 (41)
        • 멀티미디어응용수학 (7)
        • 컴퓨터 구조 (29)
        • 알고리즘 분석 (4)
        • 컴퓨터 네트워크 (38)
        • 프로그래밍언어론 (15)
        • HCI 윈도우즈프로그래밍 (26)
        • 기초데이터베이스 (29)
        • 운영체제 (23)
        • 오토마타 (24)
        • 문제해결기법 (11)
        • 블록체인 (22)
        • 소프트웨어공학 (21)
        • 기계학습심화 (12)
        • 컴퓨터그래픽스와 메타버스 (8)
        • 분산시스템특론 (6)
      • 자기계발 (45)
        • 생각 정리 (23)
        • 대외활동 (11)
        • 동아리 (7)
        • 자격증 (3)
        • 머니 스터디 (1)
      • 알고리즘 (PS) (107)
        • BOJ (101)
        • Programmers (5)
        • 알고리즘 이모저모 (1)
      • WEB(BE) (8)
        • express.js (1)
        • Spring & Spring Boot (7)
      • WEB(FE) (2)
        • html, css, js (1)
        • React.js (1)
      • Tool & Language (6)
        • Edit Plus (1)
        • Git (1)
        • Python3 (2)
        • Java (2)
      • Infra (12)
        • AWS (1)
        • Oracle Cloud (8)
        • Firebase (2)
        • Network (1)
      • Android (18)
        • Java (6)
        • Flutter (12)
      • Window (2)
        • Visual Studio 없이 WPF (1)
        • MFC (1)
      • 독서 (14)
        • Inside Javascript (7)
        • Database Internals (6)
        • 한 글 후기 (1)
  • 링크

    • github
    • website
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
에버듀
[개인프로젝트] 수원시 공고알림 크롤링 및 메일링 프로그램 제작
상단으로

티스토리툴바