앞서서 다시 한 번 마지막 부분을 살펴봅니다.

 

예매하기 버튼이 활성화 되어 버튼을 누르기 직전 다른이가 먼저 눌렀을 경우 실제 인터넷 웹 화면에는 에러창이 뜰 테지만 저에게 텔레그램에서 예약 완료하였으니 앱을 통해 예약 여부를 확인해 보라고 메세지가 옵니다. 이경우 에러창에서 다시 예매화면으로 돌아가야 하기 때문에 이경우 '홈'을 입력하면 다시 예매화면으로 돌아갑니다.

1
2
        if tel_text == "홈":
            self.korail.back_to_home()
cs
1
2
    def back_to_home(self):
        self.driver.get("http://www.letskorail.com/ebizprd/EbizPrdTicketpr21100W_pr21110.do")
cs

간단합니다.

 

그리고 끝으로 도움말과 각 주요 역을 확인할수 있는 코드도 넣어줍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
        if tel_text == "헬프":
            print(msg)
            manual = textwrap.dedent("""
            로그인 : 로그인 합니다.
            홈 : 예약화면으로 이동합니다.
            주요역 : 주요 역 리스트를 보여줍니다. 
            출발도시 설정 : 출발[도시명] 예) 출발목포
            도착도시 설정 : 도착[도시명] 예) 도착용산
            출발월 설정 : 두자리 숫자로 입력 예) 08월
            출발일 설정 : 두자리 숫자로 입력 예) 09일
            출발시간 설정 : 두자리 숫자로 입력 예) 20시
            검색 : 열차편 찾기(설정 시간대 이후 10개편 검색)
            예약하기 : 원하는 열차편 숫자를 뒤에 붙여 예약시도 예) 예약하기3
            """)
            self.bot.sendMessage(chat_id, manual)
 
        if tel_text == "주요역":
            all_station_list = textwrap.dedent("""
            서울/용산/영등포/광명/수원/평택/천안아산/
            천안/오송/조치원/대전/서대전/김천/구미/
            김천구미/대구/동대구/포항/밀양/구포/부산/
            신경주/태화강/울산(통도사)/마산/창원중앙/
            경산/논산/익산/정읍/광주송정/목포/전주/
            순천/여수EXPO/대천/청량리/춘천/제천/동해/
            강릉/행신/남춘천/부전/신탄진/영동/왜관/
            원주/정동진/홍성
            """)
            self.bot.sendMessage(chat_id, all_station_list)
cs

도움말을 헬프로 한 이유는 도착도시 입력의 '도'와 도움말 '도'가 충돌하는 듯해서입니다.

(제가 정규표현식을 너무 허접하게 짜서 그런듯 합니다...)

그리고 장문은 textwrap 기능을 사용하였습니다.ㅎ

 

이제 모든 코드를 완료하였습니다. 아마 그대로 따라하시기엔 헷갈리는 부분도 많으실 것도 같습니다.

 

제 스스로가 설명을 못한점도 있을 수 있고 또 깔끔하게 코드 정리를 더 해야할 필요성도 느끼지만 일단은 이대로 마무리하려 합니다.^^

 

항상 수도없이 느끼는 부분이지만 에러의 9할이상은 오타와 띄어쓰기 문제입니다.

 

목차

Python, Telegram으로 KTX 열차표 예매하기(#1 준비)
Python, Telegram으로 KTX 열차표 예매하기(#2 __init__.py)
Python, Telegram으로 KTX 열차표 예매하기(#3 telegram.py, korail.py)
Python, Telegram으로 KTX 열차표 예매하기(#4 텔레그램봇 만들기)

Python, Telegram으로 KTX 열차표 예매하기(#5 telegram, telepot)
Python, Telegram으로 KTX 열차표 예매하기(#6 selenium, 웹 자동화)
Python, Telegram으로 KTX 열차표 예매하기(#7 selenium, regular expression)
Python, Telegram으로 KTX 열차표 예매하기(#8 열차표 확인하기)
Python, Telegram으로 KTX 열차표 예매하기(#9 예매하기)
Python, Telegram으로 KTX 열차표 예매하기(#10 마무리)

 

+ Recent posts