selenium11 SRT&KTX 기차표 매크로 예매 - (10) KTX 승차권 조회 KTX 기차표를 조회해보자. POST 요청의 Payload를 보면 데이터가 엄...청나게 많다. 불필요한 데이터가 많을 것 같으니, 천천히 분석해보자. 결과는 다음과 같다. 승차권 조회를 여러번 해보면서 찾은 결과 URL : https://www.letskorail.com/ebizprd/EbizPrdTicketPr21111_i1.do Method : POST Data Field selGoTrain : 기차 종류 (05 - 전체, 00 - KTX, 09 - ITX-청춘, 18 - ITX-마음, 02 - 무궁화, 03 - 통근열차) txtPsgFlg_1 : 성인 수 txtPsgFlg_2 : 어린이 수(만6~12세) txtPsgFlg_8 : 아기 수(만6세 미만) txtPsgFlg_3 : 노인 수 txtPsg.. 2024. 1. 15. SRT&KTX 기차표 매크로 예매 - (9) KTX 역 리스트 조회 SRT에서 역 조회를 자동으로 해온것과 비슷하게, KTX역도 자동으로 불러오게 만들자. 기차표 조회창에서 역 변경을 누르면 기차역 리스트 팝업을 확인할 수 있다. 여기서 분홍표시된 역들이 KTX 정차역이다. 우리는 KTX가 아닌 일반 열차에는 관심이 없으므로, 이 역들만 뽑아내자. 소스코드를 보면 예쁘게도 KTX 정차역이 분리되어 나온다. class가 bg03이거나 title이 'KTX 정차역'인 리스트를 뽑으면 된다. title이 'KTX 정차역'인 리스트를 뽑으려 했는데.. 청량리역이 안잡혀서 클래스로 잡는다...(개발 상태가..) def fetch_stations(self): result = dict() try: res = self.session.get("https://www.letskorail.c.. 2024. 1. 15. SRT&KTX 기차표 매크로 예매 - (8) KTX 로그인 SRT 개발이 완료됐으니, KTX 예매 기능을 구현하자. SRT 로그인 기능 구현했던 글을 참조하여 빠르게 개발해보자. Session 받기 KTX 세션은 https://www.letskorail.com/ 에서 받는다. - callback 함수들은 ui와 연동하면서 필요하므로, 일단 주석처리하자. class KTX: def __init__(self): #, error_callback, try_callback): # self.error_callback = error_callback # self.try_callback = try_callback self.session = requests.Session() self.session.get("https://www.letskorail.com/") 로그인하기 KTX 로.. 2024. 1. 15. SRT&KTX 기차표 매크로 예매 - (6) 아이디/비밀번호 저장하기 개발하면서 프로그램을 계속 껐다 켰다 반복하다보니, 매번 로그인하는게 너~~~무 귀찮다. 그래서 id&pw 저장하는 기능을 만들고 다음 스텝으로 넘어가려고 한다. json 형태로 파일을 떨어뜨릴거라, 계정이 pc에 저장되는 아주 위험한 작업이다..! 공용 컴퓨터에서 할 경우 개인계정이 노출될 수 있음을 주의하자! 나중에는 실행파일을 만들어서 배포할 예정이므로, db가 생성되는 경로를 다르게 만들어야 한다. def get_db_path(): try: # PyInstaller에 의해 임시폴더에서 실행될 경우 임시폴더로 접근하는 함수 # 한 단계 상위에 db를 생성해야 삭제되지 않음 return os.path.join(os.path.join(sys._MEIPASS, os.pardir), 'train_db.js.. 2024. 1. 12. 이전 1 2 3 다음