개발공부/Python

캠핑장 예약 매크로 만들기!

ssung85 2020. 11. 19. 10:31
728x90

어느 날 누나가 캠핑장 예약이 너무 빨리 마감된다고 예약 매크로를 만들 수 없냐고 의뢰? 가 들어왔다.

(누나.. 나 개발자 아니야.....)

그래도 왠지 재미 있을것 같아 파이썬 첫 프로젝트로 예약 매크로 만들기로!!

어떻게 시작 할지 막연 하니 일단 구글링..ㅎㅎㅎ 역시 정보는 엄청 많이 있다.

여기저기 주워와 붙여 놓고 편집하고 만들기 시작!

 

진짜 개발자가 보면 엄청 허접 하겠지만...ㅠㅠ

 

파이썬의 selenium 모듈을 통해 자동화 기능을 구현할 수 있었다.

 

실행시킬 웹 브라우저를 불러온다. 크롬을 주로 사용하니 크롬으로 실행!

우선 크롬 웹 드라이버를 다운로드한다.

Download  :  chromedriver.chromium.org/downloads

 

버전에 맞는 크롬 드라이버를 다운로드한다.

크롬 버전은 [도움말] - [Chrome정보]에서 확인할 수 있다.

클릭해야 될 버튼 속성 값 찾기

크롬에서 F12 버튼을 누르고 속성 값을 보면 button value 값을 볼 수 있다.

간단하게 원하는 value 값을 찾고 [ driver.find_element_by_xpath(xpath).click() ] 클릭!!

이렇게 원하는 값을 찾고 클릭, 한 땀 한 땀 만들었다.

 

 

 

from selenium import webdriver
import pyautogui

#btn = pyautogui.confirm('시작')

driver=webdriver.Chrome('C://chromedriver.exe') #크롬 드라이버
driver.get('https://camping.gtdc.or.kr/DZ_reservation/reserCamping.php?xch=reservation&xid=camping_reservation') #접속할 url

#팝업 제거
xpath = "//input[@value='Y']" #테그+속성+속성값
driver.find_element_by_xpath(xpath).click() #클릭 함수

#팝업 제거
xpath = "//html/body/div[1]/div/div[2]/button" 
driver.find_element_by_xpath(xpath).click()

#날짜 지정
xpath = "//button[@value='C:2020-11-26']" 
driver.find_element_by_xpath(xpath).click() 

#위치 지정
xpath = "//html/body/div[4]/table/tbody/tr/td[3]/div/div/div[4]/div/button[23]" 
driver.find_element_by_xpath(xpath).click() 

#구역 
#A147  /html/body/div[4]/table/tbody/tr/td[3]/div/div/div[4]/div/button[47]
#A148  /html/body/div[4]/table/tbody/tr/td[3]/div/div/div[4]/div/button[48]
#A149  /html/body/div[4]/table/tbody/tr/td[3]/div/div/div[4]/div/button[49]
#A150  /html/body/div[4]/table/tbody/tr/td[3]/div/div/div[4]/div/button[50]

#D701
#D702
#D703
#D704
#D705

#인원지정
xpath = "//html/body/div[4]/table/tbody/tr/td[3]/div/div/table[1]/tbody/tr/td[4]/select/option[7]" 
driver.find_element_by_xpath(xpath).click() 

# 1명 : /html/body/div[4]/table/tbody/tr/td[3]/div/div/table[1]/tbody/tr/td[4]/select/option[2]
# 2명 : /html/body/div[4]/table/tbody/tr/td[3]/div/div/table[1]/tbody/tr/td[4]/select/option[3]
# 3명 : /html/body/div[4]/table/tbody/tr/td[3]/div/div/table[1]/tbody/tr/td[4]/select/option[4]
# 4명 : /html/body/div[4]/table/tbody/tr/td[3]/div/div/table[1]/tbody/tr/td[4]/select/option[5]
# 5명 : /html/body/div[4]/table/tbody/tr/td[3]/div/div/table[1]/tbody/tr/td[4]/select/option[6]

#예약 기간
#2박3일
xpath = "//html/body/div[4]/table/tbody/tr/td[3]/div/div/div[5]/select/option[2]" 
driver.find_element_by_xpath(xpath).click() 

#예약 기간
#3박4일
#xpath = "//html/body/div[4]/table/tbody/tr/td[3]/div/div/div[5]/select/option[3]" 
#driver.find_element_by_xpath(xpath).click() 

#다음단계
xpath = "//html/body/div[4]/table/tbody/tr/td[3]/div/div/div[6]/button[2]" 
driver.find_element_by_xpath(xpath).click() 

 

지금까지의  실행 영상

 

 

 

만들다 보니 재미있어 이 매크로를 좀 더 발전해나갈 계획!!

 

최종 상상 모습..ㅎ 시작 누르면 자동으로 원하는 날짜 예약 가능하도록 구현 해봐야 겠다.

728x90