dev_eun
[Python] 토익 티켓팅 매크로 제작기 ① with telegram-bot, chromedriver 본문
일단 내 계획은 파이썬의 Selenium을 이용해서 자동결제까지 하는 방식이다. 그리고 내 노트북으로 하루 종일 돌릴 수 없으니 AWS 프리 티어를 이용해서 하루 종일 돌릴 생각이다. 그리고 접수에 성공을 하게 되거나 예외가 발생할 경우에 내가 알아야 하니 텔레그램이란 메신저를 통해 알람이 오게 할 것이다.
참고로 내 개발 환경은 Mac Catalina이다.
일단 파이썬은 설치되어 있다고 가정하고 selenium, beautifulsoup, telegram을 설치한다.
$ pip install selenium
$ pip install beautifulsoup4
$ pip install python-telegram-bot
텔레그램과 연동을 위해 스마트폰이나 PC에 텔레그램을 설치하고 telegram-bot을 만든다.
~ 추가 하기 ~
그리고 그 봇에게 메시지를 하나 보낸다.
텔레그램으로 메시지를 보내기 위해선 각 사용자의 고유 아이디를 알아야 한다. 이것들을 알기 위해 파이썬을 실행해보자.
import telegram
bot = telegram.Bot(token=settings.telgm_token)
def check_telegram_id():
updates = bot.getUpdates() # get Updates
for u in updates: # print message
print(u.message)
봇을 생성할 때 받은 token 값을 설정해준다. 그리고check_telegram_id
함수를 실행해 보면, 이제까지 봇에게 도착한 모든 메세지의 주인들의 정보가 나온다.
출력된 결과물을 보면 json형태일 것인데, chat
이라는 값 안에 id
값이 있을 것이다. 그 ID 값을 저장해놓자. 나중에 sendMessage()
함수에서 사용할 것이다.
셀레니움은 브라우저를 이용하여 간편하게 크롤링을 할 수 있는 라이브러리이다.
나는 크롬을 사용할 건데 그러려면 드라이버가 필요하다. 드라이버는 여기서 다운 받을 수 있다.
https://chromedriver.chromium.org/downloads
chrome://version 을 들어가면 나오는 크롬 브라우저의 버전과 동일한 드라이버를 다운받아야 한다.
이 드라이버를 이용하여 셀레니움을 시작한다.
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.ui import WebDriverWait
options = webdriver.ChromeOptions()
options.add_argument('headless')
options.add_argument('window-size=1920x1080')
options.add_argument("disable-gpu")
driver = webdriver.Chrome(settings.driver_directory, options=options)
wait = WebDriverWait(driver, 10)
action = ActionChains(driver)
headless
옵션을 하지 않으면 파이썬을 실행했을 때 창이 떠서 매크로가 진행되는 걸 그대로 볼 수 있다. 나는 서버에서 돌릴 것이기 때문에 설정해주었다.
이제 준비가 모두 끝났다. 매크로를 만들어 보자!
'개발일지 > 토이프로젝트' 카테고리의 다른 글
SKT 2023 Prompter Day Seoul 후기 (0) | 2023.09.26 |
---|---|
[Python] 토익 티켓팅 매크로 제작기 ③ (0) | 2020.05.18 |
[Python] 토익 티켓팅 매크로 제작기 ② with Selenium (0) | 2020.05.17 |
[Python] 토익 티켓팅 매크로 제작기 ⓪ (0) | 2020.05.17 |