Python的Korail(www.letskorail.com)包装器
项目描述
Korail (www.letskorail.com) 的Python包装器。
本项目灵感来源于 devxoul的korail。
文档
文档可在 此处 找到
安装
要安装korail2,只需
$ pip install korail2
或者,您可以使用
$ easy_install korail2
或者,您也可以手动安装
$ git clone git://github.com/carpedm20/korail2.git $ cd korail2 $ python setup.py install
使用
1. 登录
首先,您需要创建一个Korail对象。
>>> from korail2 import *
>>> 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
如果您不想自动登录,
>>> korail = Korail("12345678", YOUR_PASSWORD, auto_login=False)
>>> korail.login()
True
当您想使用现有对象更改ID时,
>>> korail.login(ANOTHER_ID, ANOTHER_PASSWORD)
True
2. 搜索列车
您可以使用 search_train 和 search_train_allday 方法搜索列车时刻表。
search_train 返回最多10个结果。比 search_train_allday 更快。
search_train_allday 返回所有在指定时间后的结果。
search_train_allday 重复使用 search_train。
search_train 和 search_train_allday 方法接受以下参数
dep : 韩国出发站名,例如)‘서울’
arr : 韩国到达站名,例如)‘부산’
日期:(可选)yyyyMMdd格式的出发日期
时间:(可选)hhmmss格式的出发时间
train_type:(可选)列车类型。您可以使用TrainType类的常量。默认值为TrainType.ALL。
00: TrainType.KTX - KTX
01: TrainType.SAEMAEUL - 새마을호
02: TrainType.MUGUNGHWA - 무궁화호
03: TrainType.TONGGEUN - 통근열차
04: TrainType.NURIRO - 누리로
05: TrainType.ALL - 全部
06: TrainType.AIRPORT - 공항직통
07: TrainType.KTX_SANCHEON - KTX-산천
08: TrainType.ITX_SAEMAEUL - ITX-새마을
09: TrainType.ITX_CHEONGCHUN - ITX-청춘
(可选)passengers=None : 乘客对象列表。None表示1位成人乘客。
(可选)include_no_seats=False : 当为True时,结果包括没有座位的车次。
以下是search_train的示例用法
>>> dep = '서울'
>>> arr = '동대구'
>>> date = '20140815'
>>> time = '144000'
>>> trains = korail.search_train(dep, arr, date, time)
[[KTX] 8월 3일, 서울~부산(11:00~13:42) 특실,일반실 예약가능,
[ITX-새마을] 8월 3일, 서울~부산(11:04~16:00) 일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:00~14:43) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:30~15:13) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:40~15:45) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:55~15:26) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(13:00~15:37) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(13:10~15:58) 특실,일반실 예약가능]
当你想查看售罄的列车时。
>>> trains = korail.search_train(dep, arr, date, time, include_no_seats=True)
[[KTX] 8월 3일, 서울~부산(11:00~13:42) 특실,일반실 예약가능,
[ITX-새마을] 8월 3일, 서울~부산(11:04~16:00) 일반실 예약가능,
[무궁화호] 8월 3일, 서울~부산(11:08~16:54) 입석 역발매중,
[ITX-새마을] 8월 3일, 서울~부산(11:50~16:50) 입석 역발매중,
[KTX] 8월 3일, 서울~부산(12:00~14:43) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:30~15:13) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:40~15:45) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(12:55~15:26) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(13:00~15:37) 특실,일반실 예약가능,
[KTX] 8월 3일, 서울~부산(13:10~15:58) 특실,일반실 예약가능]
2-1. 关于passengers参数
passengers是一个乘客对象列表(或元组)。通过这种方式,您可以搜索多个乘客。目前有三种类型的乘客,成人乘客、儿童乘客和老年乘客。
# for 1 adult, 1 child
>>> psgrs = [AdultPassenger(), ChildPassenger()]
# for 2 adults, 1 child
>>> psgrs = [AdultPassenger(2), ChildPassenger(1)]
# ditto. They are being added each other by same group.
>>> psgrs = [AdultPassenger(), AdultPassenger(), ChildPassenger()]
# for 2 adults, 1 child, 1 senior
>>> psgrs = [AdultPassenger(2), ChildPassenger(), SeniorPassenger()]
# for 1 adult, It supports negative count or zero count.
# But it uses passengers which the sum is greater than zero.
>>> psgrs = [AdultPassenger(2), AdultPassenger(-1)]
>>> psgrs = [AdultPassenger(), SeniorPassenger(0)]
# Nothing
>>> psgrs = [AdultPassenger(0), SeniorPassenger(0)]
# then search or reserve train
>>> trains = korail.search_train(dep, arr, date, time, passengers=psgrs)
...
>>> korail.reserve(trains[0], psgrs)
...
3. 预订
您可以使用tickets方法获取您的票。
>>> trains = korail.search_train(dep, arr, date, time)
>>> seat = korail.reserve(trains[0])
>>> seat
[KTX] 8월 23일, 서울~동대구(15:30~17:19) 42500원(1석), 구입기한 8월 18일 14:05
多个。
>>> trains = korail.search_train(dep, arr, date, time)
>>> seat = korail.reserve(trains[0], passengers=psgrs)
>>> seat
[KTX] 8월 23일, 서울~동대구(15:30~17:19) 42500원(3석), 구입기한 8월 18일 14:05
当票不足以供乘客时,会引发SoldOutError。
如果您想选择座位等级的优先级,一般或特别,ReserveOption类中有4个选项。
GENERAL_FIRST : 经济型比舒适型便宜。
GENERAL_ONLY : 只预订一般座位。您很穷啊;-)
SPECIAL_FIRST : 舒适型比经济型好。
SPECIAL_ONLY : 富翁。
>>> korail.reserve(trains[0], psgrs, ReserveOption.GENERAL_ONLY)
4. 显示预订
您可以使用tickets方法获取您的票。
>>> reservations = korail.reservations()
>>> reservations
[[KTX] 8월 23일, 서울~동대구(14:55~16:45) 42500원(1석), 구입기한 8월 18일 14:03,
[무궁화호] 8월 23일, 서울~동대구(15:03~18:48) 21100원(1석), 구입기한 8월 18일 14:03,
[KTX] 8월 23일, 서울~동대구(15:30~17:19) 42500원(1석), 구입기한 8월 18일 14:05]
5. 取消预订
您也可以使用reservations()调用中的Reservation对象取消预订。
>>> korail.cancel(reservations[0])
6. 获取已支付票
您可以使用tickets方法查看您的票列表。您可以使用tickets方法获取已付款票的列表。
>>> korail = Korail("12345678", YOUR_PASSWORD, want_feedback=True)
>>> tickets = korail.tickets()
정상발매처리,정상발권처리 # You can see these feedbacks when `want_feedback` is True.
>>> print tickets
[[KTX] 8월 10일, 동대구~울산(09:26~09:54) => 5호 4A, 13900원]
如何获取Korail API
待办事项
实现支付API
许可证
源代码在BSD许可下分发。
项目详情
korail2-0.4.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4090fc75288c51ef1f18342e1f06097ab068afd59bdafb474d24d0c51fac5617 |
|
MD5 | 149de61e546a2fcc8cb995db95845444 |
|
BLAKE2b-256 | 442c4251f3b0c0284a82d3939c76ca060a515825deff0d79d487a191dc4fc017 |