Korail2
korail is not working anymore becuase of a huge change in Korail API.
Installing
To install korail2, simply:
$ pip install korail2
Or, you can use:
$ easy_install korail2
Or, you can also install manually:
$ git clone git://github.com/carpedm20/korail2.git
$ cd korail2
$ python setup.py install
Using
1. Login
First, you need to create a Korail object.
>>> from korail2 import Korail
>>> korail = Korail("12345678", YOUR_PASSWORD) # with membership number
>>> korail = Korail("carpedm20@gmail.com", YOUR_PASSWORD) # with email
>>> korail = Korail("010-9964-xxxx", YOUR_PASSWORD) # with phone number
2. Search train
You can search train schedules search_train
method. search_train
method takes these arguments:
- dep : A departure station in Korean ex) '서울'
- arr : A arrival station in Korean ex) '부산'
- date : (optional) A departure date in
yyyyMMdd
format
- time : (optional) A departure time in
hhmmss
format
- train_type: (optional) A type of train
- 00: KTX
- 01: 새마을호
- 02: 무궁화호
- 03: 통근열차
- 04: 누리로
- 05: 전체 (기본값)
- 06: 공학직통
- 07: KTX-산천
- 08: ITX-새마을
- 09: ITX-청춘
Below is a sample code of search_train
:
>>> dep = '서울'
>>> arr = '동대구'
>>> date = '20140815'
>>> time = '144000'
>>> trains = korail.search_train(dep, arr, date, time)
[[KTX] 8월 3일, 서울~부산(11:00~13:42) [특실:1][일반실:1] 예약가능,
[ITX-새마을] 8월 3일, 서울~부산(11:04~16:00) [일반실:1] 예약가능,
[무궁화호] 8월 3일, 서울~부산(11:08~16:54) [일반실:0] 입석 역발매중,
[ITX-새마을] 8월 3일, 서울~부산(11:50~16:50) [일반실:0] 입석 역발매중,
[KTX] 8월 3일, 서울~부산(12:00~14:43) [특실:1][일반실:1] 예약가능,
[KTX] 8월 3일, 서울~부산(12:30~15:13) [특실:1][일반실:1] 예약가능,
[KTX] 8월 3일, 서울~부산(12:40~15:45) [특실:1][일반실:1] 예약가능,
[KTX] 8월 3일, 서울~부산(12:55~15:26) [특실:1][일반실:1] 예약가능,
[KTX] 8월 3일, 서울~부산(13:00~15:37) [특실:1][일반실:1] 예약가능,
[KTX] 8월 3일, 서울~부산(13:10~15:58) [특실:1][일반실:1] 예약가능]
3. Make a reservation
You can get your tickes with tickets
method.
>>> trains = korail.search_train(dep, arr, date, time)
>>> seat = korail.reserve(trains[0])
정상처리되었습니다
동일시간대 예약발매내역이 있습니다.
>>> seat
[KTX] 8월 3일, 서울~부산(11:00~:) 16호 6A
4. Get tickets
You can get your tickes with tickets
method.
>>> tickets = k.tickets()
정상발매처리,정상발권처리
>>> tickets
[[KTX] 8월 10일, 동대구~울산(09:26~09:54) => 5호 4A, 13900원]
How do I get the Korail API
- Extract Korail apk from mobile phone
- Decompile apk using dex2jar
- Read a jar code using jdgui
- Edit a smaili code
- Recompile a new Korail apk using apktool
- Key signing with
motizen-sign
- Upload and run a new Korail apk
- Capture packets and analyze the API
Todo
- Distinguish adult and child
- Make an option to select special seat or general seat when reserving
- Make an option to reserve multiple seats at a time
- Implement payment API
License
Source codes are distributed under BSD license.
Author