ㅁ 개요
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 소스 다운로드 및 실행
O 주요 내용
1. 소스를 살펴보겠습니다.
텔레그램 메신저를 사용하기 위해 'import telegram' 으로 모듈을 임포트 해줍니다.
그리고 텔레그램 봇을 이용할 수 있도록 아래 코드와 같이 토큰을 넣어 줍니다.
bot = telegram.Bot(token='')
(텔레그램 봇 생성과 관련된 내용은 아래 글을 참조하시기 바랍니다.)
(프로젝트) 출근전 날씨 정보를 메신저로 수신하기 - 2. 텔레그렘으로 데이터 전송하기 - 1) 텔레그램 봇 생성
2. 그리고 아래와 같은 코드로 봇에게 변경된 내용을 뿌려줍니다.
주의할 점은 보낼 메시지는 str이어야 하므로 str()함수로 감사줍니다.
bot.sendMessage(chat_id=00000000, text='게시글에 변동사항이 있습니다. 아래 게시글이 변경된 것으로 보입니다.\n'+str(gesi))
ㅁ 정리
O 우리가 배운 내용
bot.sendMessage(chat_id=본인의챗id입력(숫자로), text='게시글에 변동사항이 있습니다. 아래 게시글이 변경된 것으로 보입니다.\n'+str(gesi))
이것으로 '파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기' 편을 마치며
댓글과 하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.
감사합니다.
※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.
'파이썬 프로젝트 및 응용 > 게시글 변경사항 체크 후 나에게 자동으로 알림보내기' 카테고리의 다른 글
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 4. 변경사항이 있으면 변경내용을 파일로 저장하기 (0) | 2023.02.02 |
---|---|
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 3. 이전에 크롤링한 게시글과 현재 게시글 비교하기 (0) | 2023.02.02 |
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 2. 게시글 크롤링하기 (0) | 2023.02.02 |
(프로젝트)파이썬 게시글 변경사항 체크 후 나에게 자동으로 알림보내기 - 1. 소개 (0) | 2023.02.02 |