Korail(www.letskorail.com)Python包装器

korail2的Python项目详细描述


PyPi versionPyPi downloadsPyPi statusPyPi license

Korail(www.letskorail.com)Python包装器。

这个项目的灵感来自 koraildevxoul

文档

文件可在 here

安装

要安装Korail2,只需:

$ pip install korail2

或者,您可以使用:

$ easy_install korail2

或者,您也可以手动安装:

$ git clone git://github.com/carpedm20/korail2.git
$ cd korail2
$ python setup.py install

使用

一。登录

首先,需要创建一个Korail对象。

>>>fromkorail2import*>>>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_trainsearch_train_allday方法。

  • search_train最多返回10个结果。速度比 search_train_allday
  • search_train_allday返回该时间之后的所有结果。
  • search_train_allday重复使用search_train

search_trainsearch_train_allday方法接受这些 参数:

  • DEP:韩国出口的出发站
  • ARR:韩国EX的到达站)‘_’
  • 日期:(可选)出发日期,格式为yyyyMMdd
  • time:(可选)出发时间,格式为hhmmss
  • 列车类型:(可选)一种列车类型。您可以使用 这里是火车车厢。默认值为TrainType.All。
    • 00:traintype.ktx-ktx
    • 01:Saemaeul-__型列车
    • 02:Mugunghwa-__型列车
    • 03:TONGGEUN型列车-__
    • 04:Nuriro-_47532;47196型列车
    • 05:traintype.all-_
    • 06:列车类型.机场-__
    • 07:traintype.ktx_u sancheon-ktx-_52380;
    • 08:traintype.itx_saemaeul-itx-_47560;_
    • 09:traintype.itx_cheongchun-itx-_52632;
  • (可选)乘客=无:乘客物品列表。无表示1 成人旅客。
  • (可选)include_no_seats=false:如果为true,则结果包括 没有座位的火车。

下面是search_train

的示例用法
>>>dep='서울'>>>arr='동대구'>>>date='20140815'>>>time='144000'>>>trains=korail.search_train(dep,arr,date,time)[[KTX]83,서울~부산(11:00~13:42)특실,일반실예약가능,[ITX-새마을]83,서울~부산(11:04~16:00)일반실예약가능,[KTX]83,서울~부산(12:00~14:43)특실,일반실예약가능,[KTX]83,서울~부산(12:30~15:13)특실,일반실예약가능,[KTX]83,서울~부산(12:40~15:45)특실,일반실예약가능,[KTX]83,서울~부산(12:55~15:26)특실,일반실예약가능,[KTX]83,서울~부산(13:00~15:37)특실,일반실예약가능,[KTX]83,서울~부산(13:10~15:58)특실,일반실예약가능]

当你想看火车卖完的时候。

>>>trains=korail.search_train(dep,arr,date,time,include_no_seats=True)[[KTX]83,서울~부산(11:00~13:42)특실,일반실예약가능,[ITX-새마을]83,서울~부산(11:04~16:00)일반실예약가능,[무궁화호]83,서울~부산(11:08~16:54)입석역발매중,[ITX-새마을]83,서울~부산(11:50~16:50)입석역발매중,[KTX]83,서울~부산(12:00~14:43)특실,일반실예약가능,[KTX]83,서울~부산(12:30~15:13)특실,일반실예약가능,[KTX]83,서울~부산(12:40~15:45)특실,일반실예약가능,[KTX]83,서울~부산(12:55~15:26)특실,일반실예약가능,[KTX]83,서울~부산(13:00~15:37)특실,일반실예약가능,[KTX]83,서울~부산(13:10~15:58)특실,일반실예약가능]

2-1.关于passengers参数

passengers是passeger对象的列表(或元组)。通过这个,你可以 搜索多个乘客。现在有三种类型的乘客, 成人旅客、儿童旅客和老年旅客。

# 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)...

三。预订

您可以使用tickets方法获取票证。

>>>trains=korail.search_train(dep,arr,date,time)>>>seat=korail.reserve(trains[0])>>>seat[KTX]823,서울~동대구(15:30~17:19)42500(1),구입기한81814:05

多重的。

>>>trains=korail.search_train(dep,arr,date,time)>>>seat=korail.reserve(trains[0],passengers=psgrs)>>>seat[KTX]823,서울~동대구(15:30~17:19)42500(3),구입기한81814:05

当车票对乘客来说不够多的时候,这就引起了索尔杜恐怖。

如果您想选择座位等级的优先权,一般或特殊 是ReserveOption类中的4个选项。

  • 将军一:经济比舒适。
  • 仅限将军:仅预订普通座位。你是波曼;-)
  • 特别优先:舒适比经济。
  • 仅限特殊用途:Richman。
>>>korail.reserve(trains[0],psgrs,ReserveOption.GENERAL_ONLY)

四。显示预订

您可以使用tickets方法获取票证。

>>>reservations=korail.reservations()>>>reservations[[KTX]823,서울~동대구(14:55~16:45)42500(1),구입기한81814:03,[무궁화호]823,서울~동대구(15:03~18:48)21100(1),구입기한81814:03,[KTX]823,서울~동대구(15:30~17:19)42500(1),구입기한81814:05]

5个。取消预订

您也可以使用 reservations()调用。

>>>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.>>>printtickets[[KTX]810,동대구~울산(09:26~09:54)=>54A,13900]

如何获取Korail API

  1. 从手机中提取Korail APK
  2. 使用dex2jar
  3. 反编译apk
  4. 使用jdgui
  5. 读取jar代码
  6. 编辑smaili代码
  7. 使用重新编译新的Korail APK apktool
  8. 使用motizen-sign
  9. 进行密钥签名
  10. 上载并运行新的Korail APK
  11. 捕获数据包并分析api

待办事项

  1. 实施支付API

许可证

源代码是根据bsd许可证分发的。

一个作者

金大勋/[@carped20](http://carpedm20.github.io/about/)金汉森 /[@sng2c](https://github.com/sng2c

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何获得要渲染的纹理   java如何动态确定对象类型的文本的实际类型   java如何用方括号解析参数数组?   java与ECC公钥的长度混淆   JavaLWJGL包括GUI类吗?   java如何打印所有收件箱电子邮件   java在片段中使用RecyclerView而不是活动会导致E/RecyclerView:没有连接适配器;跳过布局错误   为位于系统托盘中的Java程序创建键盘挂钩   使用java将三个json对象合并为一个   java获取范围(x,y)内的随机整数?   java定制primaryStage标题:以图标为中心   命令行无法使用运行java应用程序。jar依赖性“错误:无法找到或加载主类”   java LuaJava编译错误“未解析的外部符号”   如何修复java函数   java文件。Listfile()强制关闭(NullPointerException)   java调试模式在IDEA和Kotlin中停止工作   当使用命名空间STD的C++头文件上运行Sigg时,java丢失分号错误   java如何在使用DBUnit时防止数据删除   找不到java类org/apache/zookeeper/server/NIOServerCnxn$工厂   java无法在上启动jbpmhttp://localhost:8080/businesscentral