본문 바로가기
Programming/파이썬

Telegram으로 네이버 영화 순위 가지고오기

by 기적 2021. 1. 17.

유튜버들의 강의를 듣고 연습을 진행

텔래그램의 api가 많이 변경된듯하여 수정하여 기록

from selenium import webdriver
import time
from telegram.ext import Updater, MessageHandler, Filters, CommandHandler
driver = webdriver.Chrome('C:/temp/chromedriver.exe') # 크롬 드라이버 실행
updater = Updater(token='1586693187:AAHyHFegfJfHh-x4HrgJst2Ktj1z0lr3zZ0')  # 봇의 업데이트 내용 받기
dispatcher = updater.dispatcher # 봇의 행동 규칙 선언

def pic(update, context):
    for i in range(1,8):
        #print('{}'.format(i))
        url = "https://search.naver.com/search.naver?sm=tab_hty.top&where=nexearch&query=%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&oquery=%EB%84%A4%EC%9D%B4%EB%B2%84+%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&tqi=hsn5TdprvhGsskTMaORssssstJ8-516124"
        driver.get(url)
        time.sleep(0.5)
        num = driver.find_element_by_xpath("//*[@id='main_pack']/div[2]/div[2]/div/div/div[2]/div[1]/div[1]/div/ul[1]/li[{}]/a/div/div[1]/span/span[2]".format(i)) # 1위 영화 제목
        title = driver.find_element_by_xpath("//*[@id='main_pack']/div[2]/div[2]/div/div/div[2]/div[1]/div[1]/div/ul[1]/li[{}]/a/div/div[2]/strong".format(i))

        find = driver.find_element_by_xpath("//*[@id='nx_query']") # 검색창 element

        find.clear() # 기존에 입력된 검색어 삭제
        time_name = title.text
        find.send_keys("영화 {}".format(title.text)) # 영화 띄우고 영화제목 입력
        driver.find_element_by_xpath("//button[@type='submit']").click() # 돋보기 버튼 element 클릭
        jumsu = driver.find_element_by_xpath("//*[@id='main_pack']/div[1]/div[2]/div[1]/div[2]/div[3]/ul/li[2]/a/div[1]/span[1]")
        img = driver.find_element_by_xpath("//*[@id='main_pack']/div[1]/div[2]/div[1]/div[2]/div[2]/a/img").screenshot("c:/temp/poster.png")
                
        #print(num.text)
        time.sleep(0.1)
        
        context.bot.send_message(chat_id=update.message.chat_id, text="네이버 영화 순위 {}위 : {}".format(i, time_name))
        context.bot.send_message(chat_id=update.message.chat_id, text="관람객 평점 :{}".format(jumsu.text))
        context.bot.send_photo(chat_id=update.message.chat_id, photo=open("c:/temp/poster.png", 'rb')) # 사진 보내기 함수
#echo_handler  = MessageHandler(Filters.text, pic)
pic_handler = CommandHandler('movie', pic)
dispatcher.add_handler(pic_handler) # 규칙 추가

updater.start_polling() # 봇 구동 시작
updater.idle()

댓글