korail 이 취소 좌석 예약 Queue 기능같은 거 안 만들어줘서 짜증나서 크롤러를 만들었습니다. 뭐 그냥 저는 왔다갔다하는 곳이 한정적이라 그 경로들을 대상으로 테스트하면서 만들었기 때문에 다른 경로에서는 작동을 안할 수도 있습니다.
매우 간단합니다. 전화번호 기반으로 로그인하고 출발역 도착역 출발날짜 출발시간 을 입력하면 그 시간 이후 가장 가까운 시간대의 표를 구매하기 위해 노력합니다. (조회 -> 표 없음 -> 다시 조회 -> 표 있음 -> 예약)
script/index.ts
에서context
를 설정해줍니다.
$ npm run start
- 해당 프로젝트는 예약 만을 도와줍니다. 결제까지 하지 않기 떄문에 코레일 정책상 한 20분 내로 결제를 하지 않으면 에약된 표가 취소가 될꺼예요. 그렇기 때문에 해당 프로젝트로 예약 후 웹 이나 앱을 통해서 추가적으로 결제를 해주셔야 진짜 당신의 좌석이 됩니다. 유의 해주세요.
- 정교한 애플리케이션은 아니고 그냥 크롤링을 하려고 만든 겁니다. 그래서 사용자의 주의가 필요합니다.
- 코레일 로그인 방식은 다양하지만, 이 친구는 오로지 전화번호 로그인만 지원합니다. 사용 전에 전화번호로 로그인 할수 있게 설정하시고, 실제 웹이나 앱에서 해당 방법으로 로그인을 해보신 후 프로그램을 돌려주세요.
- 비밀번호는 마스킹 처리 하지 않았습니다. 당신 옆에 동료, 친구를 조심하세요.
- 어린이 청소년 장애인 등 다양한 인원에 대한 개발은 없고 오로지 성인 1명만 예약할 수 있게 만들어져 있습니다.
- 계정을 이용해 로그인 한 후 트래픽을 일으키는 방식이기 때문에, 혹여나 코레일에서 좋지 않은 제재가 있을 수 있습니다. 하지만 그것보다 표가 급한 당신이라면 OK 겠죠?
- 오로지 저를 위한 프로젝트로 만들어졌기 때문에 제가 이용하지 않는 다른 노선은 작동하지 않을 수 있습니다. 알려주시면 제가 시간나면 하고요. 못미덥다 싶으시면 직접 PR 주세요.
- 그리고 각종 예외에 대한 처리는 "전혀" 되어 있지 않습니다. 로그인 정보를 틀린다거나 용산을 용샌으로 입력한다거나 등