반응형

@21-핫딜 알리미

 

1. 뽐뿌 사이트 접속

2. 게시판 글과 링크 읽어오기

3. 원하는 키워드 검색해서 텔레그램으로 보내기

4. 계속 반복하며 새로운 게시물 올라오면 텔레그램 보내기


1. 뽐뿌 사이트 열기

from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver

driver = webdriver.Chrome(ChromeDriverManager().install())

driver.get(url = 'https://www.ppomppu.co.kr/zboard/zboard.php?id=ppomppu')

driver.implicitly_wait(time_to_wait=10)

결과. 잘 열림


2. 게시물 링크와 함께 긁어오기

from selenium.webdriver.common.by import By

#뽐뿌에서 제목 찾기
title_selector = '#revolution_main_table > tbody > tr > td:nth-child(3) > table > tbody > tr > td:nth-child(2) > div > a > font'
url_selector = '#revolution_main_table > tbody > tr > td:nth-child(3) > table > tbody > tr > td:nth-child(2) > div > a'

titles = driver.find_elements(By.CSS_SELECTOR, title_selector)
urls = driver.find_elements(By.CSS_SELECTOR, url_selector)

for i in range(len(titles)):
        print(titles[i].text)
        print('>>' + urls[i].get_attribute('href')) #Hypertext REFerence

결과.


3. 원하는 문구 '면도기' 찾아 텔레그램 전송하기

import telegram

message = ''
for i in range(len(titles)):
    if '면도기' in titles[i].text:
        message = titles[i].text + '\n' + urls[i].get_attribute('href')
        print(message)

        token = '5379028500:AAEtOhNke8GHs0SJDGqUs-tiphFavpL1ptI'
        id = '58768631'

        bot = telegram.Bot(token)
        bot.sendMessage(chat_id = id, text = message)

결과.


4. 계속 반복하며 새로운 메시지 있으면 텔레그램 보내기

- 이번엔 ('라이' : 라이브, 라이젠 등 찾기위해) 로 검색

import telegram
from webdriver_manager.chrome import ChromeDriverManager
from selenium import webdriver
from selenium.webdriver.common.by import By
import time

driver = webdriver.Chrome(ChromeDriverManager().install())
send_message_list = []

while True:
    try:
        
        #뽑뿌 접속
        driver.get(url = 'https://www.ppomppu.co.kr/zboard/zboard.php?id=ppomppu')
        driver.implicitly_wait(time_to_wait=10)
        
        #뽐뿌에서 제목 찾기
        title_selector = '#revolution_main_table > tbody > tr > td:nth-child(3) > table > tbody > tr > td:nth-child(2) > div > a > font'
        url_selector = '#revolution_main_table > tbody > tr > td:nth-child(3) > table > tbody > tr > td:nth-child(2) > div > a'

        titles = driver.find_elements(By.CSS_SELECTOR, title_selector)
        urls = driver.find_elements(By.CSS_SELECTOR, url_selector)

        message = ''
        
        print(time.ctime())
        
        # 웹 페이지 체크
        for i in range(len(titles)):
            if '라이' in titles[i].text:
                message = titles[i].text + '\n' + urls[i].get_attribute('href')
                # 기존에 보낸 메시지가 아니라면
                if message not in send_message_list:
                    # 메시지리스트에 포함하고
                    send_message_list.append(message)
                    # 출력
                    print(message)
                    # 텔레그램 보내기
                    token = '5379028500:AAEtOhNke8GHs0SJDGqUs-tiphFavpL1ptI'
                    id = '58768631'

                    bot = telegram.Bot(token)
                    bot.sendMessage(chat_id = id, text = message)
        
        # 5분 후에 다시 체크
        time.sleep(60.0 * 5)
        
    except KeyboardInterrupt:
        break

결과.

- 8시 56분에 메시지 수신됨 확인

- 첫 번째 확인 이후 이상한 에러가 났는데 뭔지 모름. 이후 계속 동작 확인

- 새 게시물이 올라오지 않아 더 이상 확인 안됨

 


내가 원하는 키워드와 사이트를 적으면,

그 사이트에서 원하는 키워드가 있는지 확인해서 알려주는 프로그램을 만들 수 있을 것 같다.

 

좋네~

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기