파이썬 게시물 검색으로 새로운 게시물 등록시 지메일로 파일 보내기
소스
import time
from unicodedata import lookup #time 명령어 사용하기
from bs4 import BeautifulSoup # BeautifulSoup 불러오기
#파이썬 requests 모듈은 간편한 HTTP 요청처리를 위해 사용하는 모듈로 별도로 설치해 주어야 한다.
import requests #pip3 install requests
#고시공고 농업정책과 1번 https://www.gyeongju.go.kr/open_content/ko/page.do?pageNo=1&srchEnable=1&srchKeyword=%EB%86%8D%EC%97%85%EC%A0%95%EC%B1%85%EA%B3%BC&srchSDate=1960-01-01&srchBgpUid=-1&mnu_uid=423&parm_mnu_uid=0&srchEDate=9999-12-31&srchColumn=con_name&srchVoteType=-1&
keyword = ['농업정책과','축산과','환경과']
keyword = keyword[1]
url = "https://www.gyeongju.go.kr/open_content/ko/page.do?pageNo=1&srchEnable=1&srchKeyword="+keyword +"&srchSDate=1960-01-01&srchBgpUid=-1&mnu_uid=423&parm_mnu_uid=0&srchEDate=9999-12-31&srchColumn=con_name&srchVoteType=-1&"
html = requests.get(url)
bs_html = BeautifulSoup(html.content,"html.parser")
first_ = bs_html.select("table tr")[1]
href = first_.find_all("td")[1].find("a")
#print("https://www.gyeongju.go.kr" + href['href']) #테그의 a href url주소가 취득하기
first_num = first_.select("td")[1].text #제목 추출하기
print(first_num, sep='\n')
import os.path #파일경로
filename = 'C:/Users/크리스퍼/python_code/경주시청/고시공고.txt'
if os.path.isfile(filename):
print("기존 고시공고 파일이 있어요")
else:
print("기존 고시공고 파일이 없어요")
f = open(filename,'w',encoding='UTF-8')
f.close()
time.sleep(1)
f = open(filename,'r',encoding='UTF-8')
try:
line = f.readlines()[0]
except:
line=""
print('신규문서로 읽어올 자료가 없습니다.')
print(line)
f.close()
# adddata.py
if(line!=first_num):
print("고시공고 파일을 삭제합니다.")
os.remove(filename)
print("고시공고 파일을 갱신합니다.")
f = open(filename,'w',encoding='UTF-8')
f.close()
print("새로운 정보가 입력됩니다.")
f = open(filename,'a',encoding='UTF-8')
f.write(first_num)
f.close()
# 지메일 발송-*- coding:utf-8 -*-
import smtplib #smtplib은 SMTP를 사용하기 위한 모듈
from email.mime.text import MIMEText #MIMEText는 메일을 보낼 때 메시지의 제목과 본문을
smtp = smtplib.SMTP('smtp.gmail.com', 587) #세션을 만들기 위해 SMTP 인스턴스를 이용하여 SMTP 연결을 캡슐화
smtp.ehlo() # say Hello
smtp.starttls() # TLS 사용시 필요
smtp.login('구글@gmail.com', 'IMAP 앱 비밀번호')
#계정 비밀번호를 입력해서는 안됩니다!
#또한 지메일 계정을 다른 디바이스에서 사용하기 위해서는 IMAP을 설정해주어야 하는데,
#앱 비밀번호 생성 및 IMAP 설정 방법은 아래와 같습니다.
#☞ IMAP 설정하는 방법
#1. 지메일 계정에 로그인합니다.
#https://yeolco.tistory.com/93
msg = MIMEText('경주시청 고시공고' + keyword + '새로운 게시물')
msg['Subject'] = first_num
msg['To'] = 'kim@naver.com'
smtp.sendmail('지메일@gmail.com','지메일@gmail.com', msg.as_string()) # 사람, 사람, ...
smtp.quit()
print("메일 발송완료")
else:
print("중복된 내용입니다.")
결과
PS C:\Users\크리스퍼\python_code> & C:/Users/크리스퍼/AppData/Local/Programs/Python/Python39/python.exe c:/Users/크리스퍼/python_code/경주시청/고시공고.py
야생멧돼지 아프리카돼지열병(ASF) 발생지역산 청예(풀)사료 급여금지 행정명령 공고
기존 고시공고 파일이 있어요
야생멧돼지 아프리카돼지열병(ASF) 발생지역산 청예(풀)사료 급여금지 행정명령 공고
중복된 내용입니다.
PS C:\Users\크리스퍼\python_code>