파이썬 게시물 검색으로 새로운 게시물 등록시 지메일로 파일 보내기

by nanumi posted Jun 14, 2021
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

파이썬 게시물 검색으로 새로운 게시물 등록시 지메일로 파일 보내기

 

소스

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_numsep='\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>