파이썬 : 아빠가 되기위한 간단 산후조리원 예약 프로그램 작성 by 떵꺼리

아빠되기 위한 첫 관문.

그 관문은 치열한 아줌마들의 경쟁을 뚫고 산후조리원에 예약을 하는 것.
특정 날짜의 특정 시간에 예약을 받는데 선착순이기때문에 잠시라도 늦으면
다른 산후조리원을 알아봐야한다. ;;;;

그래서 산후조리원의 이미 예약이 끝난 기존 등록 시간대를 살펴보았다.

2007-XX-01 09:00:00.850  예약대기 
2007-XX-01 09:00:00.740  예약대기 
2007-XX-01 09:00:00.550  예약완료 
2007-XX-01 09:00:00.520  예약완료 
2007-XX-01 09:00:00.410  예약완료 
2007-XX-01 09:00:00.363  예약완료 
2007-XX-01 09:00:00.037  예약완료 

총 8명을 선착순으로 받는데 5명은 예약완료고 나머지 3명은 대기자로 빠진다.

그러나 여기서 눈여겨 볼 점은 9시에 예약을 받는데 예약이 끝나는데 1초도 안걸린다.

그리고 초단위도 아니고 밀리초에서 끝났다는 사실이다. OTL
가장 빠른 시간은 09:00:00.037 닷. 신의 손!!!!


우리집은 대가족이 아니라 부인과 나 딸랑 2명이서 도전해야하는데 암담하다.
그래서 안되겠다 싶어 간단하게 파이썬으로 프로그램을 짜고 이걸 스케줄러에 등록하기로 했다.

아래는 로그인 후 등록을 진행하는 파이썬 코드이다.
(코드를 짜기 전에 미리 로그인, 예약등록 URL을 파악하고 필요한 파라미터도 파악해야한다.)

# -*- coding: cp949 -*-

import ClientCookie
import urllib;

#사이트 로그인
request = ClientCookie.Request("로그인을 위한 URL과 파라미터") #http://www.aa.com/login.php?id=XXX&time=2007-08-09&jumin=XXXXXX"

response = ClientCookie.urlopen(request)

#응답 읽음
print response.read()

#응답을 가지고 필요한 처리

#예약시작
name        = urllib.quote("예약자이름") #한글이름 URL 인코드
req_url     = "실제 예약등록을 하는 URL과 파라미터" 
#http://www.aa.com/regist.php?id=XXX&time=2007-08-09&jumin=XXXXXX"

request2    = ClientCookie.Request(req_url)  #실제 페이지에 요청
response2   = ClientCookie.urlopen(request2)
text = response2.read()  #실제 페이지 응답 받음
#예약 끝
 
#결과
print text

로그인 세션 유지를 위해 클라이언트 쿠키라는 모듈을 사용했다.
이걸 스케쥴에 걸어서 성공적으로 예약이 되기를 빌고 있다.

이걸 준비하면서 흡사 예전에 있었던
IBM이 개발한 슈퍼컴퓨터와 15년간 세계 체스챔피언을 지낸 체스 황제 러시아의 게리 카스파도로프와 대국처럼
내 프로그램과 아줌마부대간의 경쟁은 누가 승리할 것인가.
긴장된다. 결과는 나중에 블로그에 다시 올리도록 해야겠다.

PS : 스케쥴러가 걸리는 PC는 대한민국 표준시차에 싱크 시켜야겠다. 밀리초라도 오차가 없도록...;;;

덧글

댓글 입력 영역