본문 바로가기
프로그래밍/파이썬

땡글 구매정보 공유 게시글 크롤링 텔레그램 발송 봇 두번째

by 젤리씨 2021. 4. 15.
728x90

땡글 봇 첫번째는 zelits.tistory.com/796

 

땡글 구매정보 공유 게시글 크롤링 텔레그램 발송 봇

땡글 구매정보 공유 게시글 업데이트 텔레그램 발송 봇 #!/usr/bin/env python # encoding=utf-8 import requests import time from bs4 import BeautifulSoup import telegram import urllib.request bot..

zelits.tistory.com

위와같이 만들었습니다 상시로 계속 돌려놔야해서 

 

크론탭으로 스케쥴링 관리를 하고자 바꿔봤습니다.

 

 

#!/usr/bin/env python
# encoding=utf-8

import requests
from bs4 import BeautifulSoup
import os
import telegram

bot = telegram.Bot(token='텔레그램 토큰')
#chat_id = bot.getUpdates()[-1].message.chat.id
BASE_DIR = os.path.dirname(os.path.abspath(__file__))


req = requests.get('https://www.ddengle.com/buyinfo')
req.encoding = 'utf-8'

html = req.text
soup = BeautifulSoup(html, 'html.parser')
posts = soup.find("a", class_="hx")["href"]

print(posts)
latest = posts

ss = soup.find("a", class_="hx")["href"]

with open(os.path.join(BASE_DIR, 'latest.txt'), 'r+') as f_read:
    before = f_read.readline()
    if before != latest:
        bot.sendMessage(챗아이디, text='새 글이 올라왔어요!'+ss)
    #else: # 원래는 이 메시지를 보낼 필요가 없지만, 테스트 할 때는 봇이 동작하는지 확인
        #bot.sendMessage(chat_id=chat_id, text='새 글이 없어요 ㅠㅠ')
    f_read.close()

with open(os.path.join(BASE_DIR, 'latest.txt'), 'w+') as f_write:
    f_write.write(latest)
    f_write.close()

 

9, 20째줄에 본인의 텔레그램 토큰 및 챗 아이디 넣으시면 작동 합니다.

 

요새그래픽카드 구하기 넘 힘들어서 알림으로 만들어 봤어요//

 

파이썬 파일 폴더에 latest.txt 파일이 있어야 합니다. 빈 내용으로도...

 

게시물 제목을 latest.txt 파일에 저장해놓고 비교 후 텔레그램 발송하는 로직입니다.

728x90

댓글