본문 바로가기

selenium11

SRT&KTX 기차표 매크로 예매 - (5) UI 만들기 (PyQt5) 기본적인 기능은 구현이 다 됐으나, 매 번 코드를 바꿔가며 예매하기는 힘드니 UI를 만들어보자. 우선은 실행파일로 제작하고 추후 웹을 구축해볼까 한다. Python 기반으로 제작되었기에 PyQT를 이용해서 UI를 제작한다. 속도를 위해 Qt Designer 툴을 이용하자. UI에 들어가야할 기능은 아래와 같다. SRT / KTX 선택 로그인 로그인 상태 확인 출발역, 도착역, 시간, 날짜, 시간, 인원 등 예매 관련 정보 예매 시작 버튼 ( = 중단 버튼) 예매 시도 주기 설정 에러 로그 창 예매 시도 상태 확인 창 Qt Designer를 이용하면 .ui파일로 나오는데, 결과물로 exe나 dmg 파일을 만들고 싶으므로 .py 확장자로 변경해준다. python -m PyQt5.uic.pyuic -x [변환.. 2024. 1. 12.
SRT&KTX 기차표 매크로 예매 - (4) SRT 승차권 예매 마지막으로 승차권 예매를 해보자! 예매 request는 내용도 많고 복잡하지만... 침착하게 분석해보자 Body data를 분석하다보니, 입석+좌석이나 환승의 경우 데이터가 너무 복잡해서, 직행 열차만 다룬다. URL : https://etk.srail.kr/hpg/hra/01/checkUserInfo.do Method : Post Body Data rsvTpCd : 예약 타입 코드 (01 - 일반 예약, 05 - 대기) jobId : ??? (1101 - 일반 예약, 1102 - 대기) jrnyTpCd : [추정] 여행 타입 코드 - 항상 '11' jrnyCnt : [추정] 여정 개수 - 항상 '1' totPrnb : 총 탑승 인원 stndFlg : [추정] 입석 여부 - 항상 'N' trnOrdrNo.. 2024. 1. 9.
SRT&KTX 기차표 매크로 예매 - (3) SRT 승차권 조회 예매하고자 하는 승차권을 정확하게 알고 있다면, 굳이 승차권 리스트를 조회할 필요가 없다. 그래도 최종적으로 UI도 입히고, 유저 편의성을 높이려면 조회 기능은 필요할 것 같아 구현해보려고 한다. 결론적으로 말하자면, SRT 승차권 리스트를 Json 형태로 받아오는 방법을 못찾았다... HTML 코드를 받아서 파싱을 해야한다. 이것만은 하기 싫었는데... 승차권 조회를 여러번 해보면서 찾은 결과 URL : https://etk.srail.kr/hpg/hra/01/selectScheduleList.do Method : POST Query : pageId=TK0101010000 (없어도 되는 것으로 추정됨) Data Field dptRsStnCd : 출발역 코드 (e.g. 0551) arvRsStnCd : .. 2024. 1. 9.