네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

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

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

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

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

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

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

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

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

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

Download  :  chromedriver.chromium.org/downloads

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

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

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

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

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

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

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

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi
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() 

지금까지의  실행 영상

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

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

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

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

오늘은 아무도 알려주지 않는

정말 꿀.팁!!! 을

몰래 알려드리려고 합니다 .ㅎㅎㅎ

선착순으로 몇시부터 몇명만 신청할 수 있도록 하는 그런거 있잖아요~

이벤트 당첨이나

콘서트나 공연 티켓 예매 같은거요.

그걸 사람 손으로 하려면 그 극심한 경쟁 속에서

1초 이하의 속도를 이기기가 쉽지 않단 말이죠.

그.래.서

그럴 때 매크로로 어떻게 사람 손보다 빠르게~

눈보다 빠르게~

신청을 할 수 있는지 특별히 알려드리려고 합니다. ^^

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

아 이거 진짜 귀한 정보인데...

아무데서나 안 알려주는거니까

정신 똑바로 차리고 집중해서 보세용~!! ㅋㅋㅋ

1. G 매크로

일단 첫번째로 매크로를 돌리는 방법을 알려드릴게요.

매크로는 정말 간단한 마우스 클릭 같은 행동을

미리 입력해서 컴퓨터 소프트웨어에 입력해서 나 대신 수행하도록

명령을 입력해놓은 프로그램입니다.

제가 소개해드리는 기능은 엄청 간단한 작업이지만

이걸 복잡한 단순작업을 알아서 수행하게 할 수도 있는데요

그게 바로 RPA(Robotic Process Automation)이라고 부르는

로봇 프로세스 자동화 프로그램입니다.

아무튼 오늘은 사람의 손으로 하기에는 선착순의 속도전을 이길 수 없으니

그걸 빠르게 할 수 있도록 프로그램으로 설정하는 법을 알려드릴거에요~

# 선착순 이벤트 당첨되는 법, 티켓예매 성공하는 법

매크로 프로그램은 많은데

예전에 제가 써봤던 프로그램이 어떤거였는지 기억이 잘 안나서

최근에 다시 검색해서 사용한 프로그램으로 소개해드릴게요~

G 매크로인데

지금 네이버 블로그 문제인지 알수없지만

파일이 업로드가 안되네요.

이메일로도 보낼 수 없는 파일형식이라고 나오고....

정책이 변경되었나봅니다.

2018년에 올린 글에는 첨부가 되는걸 보면

그 이후에 변경된 것 같습니다 .

https://blog.naver.com/thstmdgus8787/221311938299

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

G매크로를 다운받고

압풀을 풀어서 실행하시면 됩니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

여기서 응용프로그램인 g매크로를 누르세요~

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그러면 바로 이렇게 시작합니다.

굉장히 심플한 프로그램이에요.

방법은 간단합니다.

1) [키보드 설정]에서 단축키 확인 및 재설정한다.

2) [마우스] 에서 원하는 좌표 및 원하는 행동을 설정한다.

3) [시간]을 설정한다.

4) [반복]을 체크한다.

하나씩 설명해드릴게요.

1) [키보드 설정]에서 단축키 확인 및 재설정한다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그러면 매크로를 시작할 단축키와 중지할 단축키를 선택할 수 있는데요

디폴트 설정은 F11 과 F12 입니다.

근데 제가 해보니까 특히 F12같은 경우 소스보기 버튼이라서

한번 테스트삼아 해보면 해당 사이트의 소스 화면이 열려서

다시 끄는 작업이 필요하더라구요.

그래서 1,2 같은 숫자키로 바꿔주는게 중복되는 기능 없이 무난한 것 같습니다.

시작 단축키 위치에 커서 놓고 1 누르고

중지 단축키 위치에 커서 놓고 2 누르시면 변경됩니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그러면 [완료] 눌러주세요.

그 다음 마우스를 설정해야 합니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

마우스를 누르면

이렇게 설정할 수 있는 화면이 뜨는데요.

여기서 무엇을 할 건지 설정해줘야 합니다.

대부분 어느 지점으로 마우스를 이동 시킨 다음 -> 그 부분을 왼쪽 클릭을 하게 되죠.

그걸 그대로 설정해줘야 합니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

예를 들어 교재를 받기라는 버튼을

정해진 시간에 정확하게 눌러야 된다고 가정해봅시다.

[교재받기] 버튼에 커서를 놓으면 g매크로에 좌표가 표시되요.

그걸 그대로 입력합니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그 다음은 [완료]를 누르고

그리고 나서 왼쪽 클릭을 할거니까

왼쪽 클릭을 누르고 [완료] 를 눌러줍니다.

더블 클릭을 하려면 왼쪽 클릭을 두번 눌러줘야 하겠죠~

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그 다음 시간텀 설정입니다.

짧게 할 수도록 좋겠죠???

그래서 전 0.001로 입력합니다. ㅎㅎㅎㅎ

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그리고 반복에 체크해주면 됩니다.

자 그러면 끝났어요!

그러면 이제 실행하려면 단축키 1 을 누르면 되구요

실행을 해제하려면 단축키 2를 누르면 됩니다.

단 설정해놓은 그 좌표의 그 화면이 절대로 움직이면 안되요.

그러면 그 좌표의 다른 곳을 선택하겠죠~

# 수강신청 성공하는 법, 선착순 이벤트 당첨되는 법, 티켓예매 성공하는 법

2. 네이비즘 서버시간

혹시 사이트의 서버마다 시간이 미세하게 아주 조금은 다르다는 사실을

알고 계신가요??

물론 그래봐야 몇 초 정도 차이일텐데

바로 그 미세한 차이가 당락을 결정하니까요~

http://time.navyism.com/

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

들어가면 표준시간을 보여주는데요

원하는 사이트를 입력하면 그 사이트의 서버시간을 초단위로 알려줍니다.

네이버를 한번 검색해볼까요?

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

여기에 사이트 주소를 치고 [ Fight!] 버튼을 누르면 됩니다.

전에도 써봤지만

버튼 이름이 Fight 였다는 걸 지금 알았네요. ㅋㅋㅋ

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

제가 실제 제 PC에 표시되는 시간과 차이를 확인해봤는데요

보시다시피 제 pc는 아직 42분인데

네이버 서버시간은 이미 43분이 넘었죠.

그래서 몇 초 정도나 차이나나 한번 확인해봤는데

그래봐야 1~2초 정도 차이가 날 거라고 생각했는데

생각보다 차이가 많이 났어요.

저 네이버시계가 10초도 더 넘었을 때야

제 PC의 시계가 43초로 넘어가더라구요.

그러니까 서버마다 차이가 10초 이상도 날 수 있다는 거죠~

이러니 원하는 사이트가 인식하는 시간이 몇시인지를 알아야 해요.

당락여부는 1초안에 결정되니까요 ㅎㅎ

# 수강신청 성공하는 법, 선착순 이벤트 당첨되는 법, 티켓예매 성공하는 법

3. Alert control

그 다음으로 알려드릴 프로그램은

Alert control 입니다.

이게 뭔지 낯선 분들이 많을텐데 단순히 팝업을 막는 프로그램이 아니고

뭔가 눌렀을 때 뜨는 알림 팝업을 제거하는 기능입니다.

예를 들어 [수강신청], [당첨확인]. [예매] 같은 버튼을 눌렀을 때

"아직 신청기간이 아닙니다." 라고 뜨는 작은 알림 팝업이 있잖아요~

그게 떠버리면 그걸 확인처리해서 없앤 다음에

다시 신청 버튼을 눌러야 하니 한번만 누르고 더이상 못 누르는거에요.

그걸 차단시켜야 합니다.

그래야 반복적으로 빠르게 신청 버튼을 누를 수 있어요.

이 기능은 인터넷 익스플로러 창에서는 안됩니다.

크롬으로 해야되요.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

크롬에서 Alert control 를 검색해서

들어가보면

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

이렇게 다운받을 수 있는 곳을 연결됩니다.

그러면 [Chrome 에 추가] 버튼을 눌러서 다운로드 받으세요.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

이렇게 묻는 팝업이 뜨고

[확장 프로그램 추가]를 누릅니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그러면 크롬 맨 오른쪽 쯤에 안보이던게 뜰 건데요

그게 바로 Alert control 조절하는 곳 입니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

그러면 조절할 수 있는 칸이 뜨는데요.

거기서 디폴트로 기본 설정되어있는 건 알림 팝업 허용입니다. (Allow)

그걸 막아줄거니까

block으로 바꿔주시면 됩니다.

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

저장 버튼 같은건 없어요.

그냥 바꿔주면 됩니다.

그리고 실제 신청하고자 하는 화면에서 테스트해보시면

신청 버튼을 눌렀을 때 뜨는 알림 팝업이 더이상 안뜨는걸 확인하실 수 있을거에요~

그러면 빠르게 반복적으로 클릭하는 게 가능해지는거죠.

그러면 모두 원하시는 거 얻으시길 바래요~~ ^^

네이버 예약 매크로 만들기 - neibeo yeyag maekeulo mandeulgi

# 수강신청 성공하는 법, 선착순 이벤트 당첨되는 법, 티켓예매 성공하는 법