파이썬 프로젝트 및 응용/게시글 변경사항 체크 후 나에게 자동으로 알림보내기

(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 5. 변경내용을 메신저로 알림 보내기

파기차차 2023. 2. 2. 07:59
728x90
반응형
SMALL
728x90
반응형

ㅁ 개요

 

O 프로그램 소개

 

 

 - 이번 글은 이전글(파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 4. 변경사항이 있으면 변경내용을 파일로 저장하기)에 이은 5번째 글로 이전글과 현재글 비교 후 변경 사항이 존재하는 경우 변경내용을 텔레그램 메신저로 보내는 방법에 대하여 살펴보겠습니다.

 

 

O 완성된 프로그램 실행 화면

 

 

 - 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

1. 아래와 같이 게시글이 변경되면

 

 

 

 

2. 텔레그램 메신저로 변경된 내용(변경된 게시글 제목들)을 보내 주고 있습니다.

 

 

 

 

 

 

 


 

ㅁ 세부 내용

 

O 완성된 소스

 

 

소스 : 4.py( 변경사항을 텔레그램 메신저로 보내기)

# -*- coding utf-8 -*-
import time
from bs4 import BeautifulSoup
import requests
import datetime
from datetime import datetime
import telegram


# 텔레그램 설정 부분
bot = telegram.Bot(token='본인의 텔레그렘 토큰 입력')

url = "https://pagichacha.tistory.com"
html = requests.get(url)
soup = BeautifulSoup(html.content, "html.parser")

beforePosts = []

for i in range(3,13):
    beforePost = soup.select_one('#container > main > div > div.area-common > article:nth-child('+str(i)+') > div > a > strong').text
    print(beforePost)
    beforePosts.append(beforePost)

print("++++++++++++++++++++++++++++++++++++++++")

beforeSet = set(beforePosts)

time.sleep(10)
#######################################################################################################


while True:
    now=datetime.now()
    date_ = str(now.year)+"-"+str(now.month)+"-"+str(now.day)+"-"+str(now.hour)+"-"+str(now.minute)+"-"+str(now.second)
    gesiFile = date_+"_gesi.txt"

    url = "https://pagichacha.tistory.com"
    html = requests.get(url)
    soup = BeautifulSoup(html.content, "html.parser")

    afterPosts = []

    for i in range(3,13):
        afterPost = soup.select_one('#container > main > div > div.area-common > article:nth-child('+str(i)+') > div > a > strong').text
        print(afterPost)
        afterPosts.append(afterPost)

    print("++++++++++++++++++++++++++++++++++++++++")
    afterSet = set(afterPosts)
    #######################################################################################################
    gesi = afterSet - beforeSet
    if (gesi):
        print("=======================================================================================")
        print("게시글에 변동사항이 있습니다. 아래 게시글이 변경된 것으로 보입니다.")
        print(gesi,"+++++++++++ 2") # <---------------- 이 녁석이 답임
        with open(gesiFile, 'w') as f:
            f.write(str(gesi)+"\n")

        # 텔레그램으로 메시지 보내기
        bot.sendMessage(chat_id=480756660, text='게시글에 변동사항이 있습니다. 아래 게시글이 변경된 것으로 보입니다.\n'+str(gesi))

        print("=======================================================================================")
    else:
        print("게시글에 변동사항이 없습니다.")
    #######################################################################################################
    beforeSet = afterSet 

    time.sleep(10)

 

 

 

 

O 소스 다운로드 및 실행

 - 소스파일 다운로드 후 cmd, 파워쉘 또는 vscode 등에서 아래와 같이 실행하시기 바랍니다.
 > python 4.py

 

 


 
 

 

O 주요 내용

 

1. 소스를 살펴보겠습니다.

 

 텔레그램 메신저를 사용하기 위해 'import telegram' 으로 모듈을 임포트 해줍니다.

 

그리고 텔레그램 봇을 이용할 수 있도록 아래 코드와 같이 토큰을 넣어 줍니다.

bot = telegram.Bot(token='')

 

 

(텔레그램 봇 생성과 관련된 내용은 아래 글을 참조하시기 바랍니다.)

(프로젝트) 출근전 날씨 정보를 메신저로 수신하기 - 2. 텔레그렘으로 데이터 전송하기 - 1) 텔레그램 봇 생성

 

 

 

 

2. 그리고 아래와 같은 코드로 봇에게 변경된 내용을 뿌려줍니다.

주의할 점은 보낼 메시지는 str이어야 하므로 str()함수로 감사줍니다.

bot.sendMessage(chat_id=00000000, text='게시글에 변동사항이 있습니다. 아래 게시글이 변경된 것으로 보입니다.\n'+str(gesi))

 

 


 

ㅁ 정리

 

O 우리가 배운 내용

 
 - 오늘 우리는 이전글과 현재글 비교 후 변경 사항이 존재하는 경우 변경내용을 텔레그램 메신저로 보내는 방법에 대하여 살펴보았습니다.
 
 - 오늘 우리가 배운 내용 중 주요한 부분은 아래와 같습니다.
 > 1.텔레그램 봇 설정
bot = telegram.Bot(token='본인의 엑세스토큰 입력')
 > 2. 텔레그램으로 메시지 보내기
bot.sendMessage(chat_id=본인의챗id입력(숫자로), text='게시글에 변동사항이 있습니다. 아래 게시글이 변경된 것으로 보입니다.\n'+str(gesi))
 
 

이것으로 '파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기' 편을 마치며

댓글하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.

 

 

감사합니다.

 

 

 

※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.

 

 

728x90
반응형
LIST