J12306抢票助手

12306抢票程序JAVA版,自动登录-验证-查票-购票/自动候补。只需简单的配置即可运行进行快捷抢票。

使用说明

引入jar依赖

手动添加项目lib文件夹中的依赖包

配置文件config.yml

# 请修改相关配置

# 12306账号密码配置(暂时没用到)

j12306:

user: 182xxxx

password: 123456

ticket:

queryspeed: 2000 # 刷票速度(单位毫秒)。默认2秒。温馨提示:刷票频率不要过快,避免封IP(暂未测试过)

alternate: true # 开启自动候补

queryp: Z # 查票默认接口(可选值:A、Z)。说明:由于12306官方查票接口经常在A和Z两个接口中变更,所以为了方便,在此处加了默认接口配置。

# 通知配置

notice:

# 电子邮件配置

email:

sender:

from: hutool@yeah.net # 发件人(必须正确,否则发送失败)

host: smtp.yeah.net # 邮件服务器的SMTP地址,可选,默认为smtp.

port: 25 # 邮件服务器的SMTP端口,可选,默认25

user: hutool # 用户名

pass: qlw2e3 # 密码(注意,某些邮箱需要为SMTP服务单独设置密码,详情查看相关帮助)

receiver: 1481397688@qq.com # 接收人邮箱

配置抢票信息

Main.java中,直接配置用户名密码及乘车相关信息即可

开始抢票

直接运行Main函数开始抢票。就是这么简单粗暴!

程序运行log

[2019-09-22 12:42:33] [INFO] com.kalvin.J12306.api.Login: 进入12306登录页,状态码:200

[2019-09-22 12:42:36] [INFO] com.kalvin.J12306.AI.Easy12306AI: 验证码:3,4

[2019-09-22 12:42:37] [INFO] com.kalvin.J12306.api.Login: 验证码通过,开始密码登录

[2019-09-22 12:42:37] [INFO] com.kalvin.J12306.api.Login: 登录成功

[2019-09-22 12:42:40] [INFO] com.kalvin.J12306.api.Ticket: 进入查询车票页面,开始查票...

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D2804,出发时间:07:06,到达时间:08:10,座席:一等座1、二等座12、无座有

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D1849,出发时间:07:23,到达时间:08:37,座席:一等座4、二等座有、无座无

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D7551,出发时间:09:23,到达时间:11:02,座席:一等座有、二等座有、无座有

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D2962,出发时间:09:35,到达时间:10:41,座席:一等座8、二等座14、无座有

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D2812,出发时间:10:05,到达时间:11:11,座席:一等座无、二等座2、无座无

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D1822,出发时间:11:00,到达时间:12:06,座席:一等座3、二等座无、无座无

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D2948,出发时间:11:34,到达时间:12:42,座席:一等座无、二等座无、无座有

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D2834,出发时间:15:15,到达时间:16:27,座席:一等座2、二等座2、无座有

[2019-09-22 12:42:42] [INFO] com.kalvin.J12306.Go12306: 可预订车票信息:发车日期:2019-09-26,车次:D2980,出发时间:17:19,到达时间:18:25,座席:一等座2、二等座20、无座有

[2019-09-22 12:42:46] [INFO] com.kalvin.J12306.api.CheckOrderInfo: 车票提交通过,正在尝试排队...

[2019-09-22 12:42:46] [INFO] com.kalvin.J12306.api.GetQueueCount: 排队成功,你当前排在6位,当前余票还有101张

[2019-09-22 12:42:46] [INFO] com.kalvin.J12306.api.ConfirmSingleForQueue: 不需要订单验证码,直接提交

[2019-09-22 12:42:46] [INFO] com.kalvin.J12306.api.ConfirmSingleForQueue: 开始正式下单...

[2019-09-22 12:42:48] [INFO] com.kalvin.J12306.api.QueryOrderWaitTime: 下单ing...正在第1次排队ing...

[2019-09-22 12:42:48] [INFO] com.kalvin.J12306.api.QueryOrderWaitTime: 订票成功!

[2019-09-22 12:42:48] [INFO] com.kalvin.J12306.api.QueryOrderWaitTime: 恭喜您订票成功,订单号为:EF71508610, 请立即打开浏览器登录12306,访问‘未完成订单’,在30分钟内完成支付!

[2019-09-22 12:42:48] [INFO] com.kalvin.J12306.api.QueryOrderWaitTime: 以邮件方式通知抢票人

[2019-09-22 12:42:48] [INFO] com.kalvin.J12306.Go12306: 抢票程序结束:STOP

更新日志

2019-12-24

新增座席选择,现在支持座席【商务特等座(P)、一等座(M)、二等座(O)、无座(N)、软卧(4)、硬卧(3)、软座(2)、硬座(1)】

优化抢票逻辑及代码

2019-12-22

更改刷票频率(config.yml[j12306.ticket.queryspeed])粒度为毫秒(ms), 原秒(s)。

config.yml新增配置项:[j12306.ticket.queryp];由于12306官方查票接口经常在A和Z两个接口中变更,

现在支持配置默认查票接口(不是必要的),另外程序也会自动识别无法访问的查票接口,并自动切换,如:queryZ -> queryA

更新错误日志输出级别

问题反馈

如有疑问,可在项目上issues!

常见问题解决

RAIL_EXPIRATION值已失效

有时候网络原因导致的,请务必多重试几次,如果还是这种情况就更新下logdevice接口的参数;更新步骤:

以下顺序一定要对,不然找不到logdevice

2.按f12进入调试模式并点击Network选项

3.清除浏览器缓存的有关12306.cn和kyfw.12306.cn的Cookie(谷歌浏览器点击浏览器地址栏的小锁)

4.按f5重新刷新(只有第1次刷新才有出现,所以不要刷新2次)

5.在Network选项下找到logdevice请求,点击它,在Headers选项下拉到最下面就可以找到如下几个参数,复制替换它即可

其它情况登录失败或验证码验证失败

可能的解决方案:

请重试登录多次

确保更新到最新的代码

线程【main】无法获取车票信息,状态码:302

可能的解决方案:

确保你IP没被封(在浏览器上12306官网是否能正常查票)

更新最新代码

java版12306抢票_GitHub - a1647517212/J12306: 12306抢票程序JAVA版相关推荐

  1. Java处理敲击键盘事件 Etch-A-Sketch玩具实现 光标画笔画图程序 Java核心技术

    Java处理敲击键盘事件 Etch-A-Sketch玩具实现 光标画笔画图程序 Java核心技术 source code: package com.sunnyykn.chapter08; import ...

  2. textarea支持a标签_微慕小程序开源版A标签优化说明

    微慕WordPress小程序所有版本里,对于文章详情里文字内容的解析,都是通过开源组件:wxParse:不过这个组件已经停止维护,微慕小程序在这个组件上做了一些优化,让文章里文字在小程序显示更加完美. ...

  3. 微慕小程序开源版A标签优化说明

    微慕WordPress小程序所有版本里,对于文章详情里文字内容的解析,都是通过开源组件:wxParse 不过这个组件已经停止维护,微慕小程序在这个组件上做了一些优化,让文章里文字在小程序显示更加完美. ...

  4. java订单号 github_GitHub - github2zhang/J12306: 12306抢票程序JAVA版

    J12306抢票助手 12306抢票程序JAVA版,自动登录-验证-查票-购票/自动候补.只需简单的配置即可运行进行快捷抢票. 使用说明 引入jar依赖 手动添加项目lib文件夹中的依赖包 配置文件c ...

  5. java 12306高并发抢票_PHP 高并发、抢票、秒杀 解决方案

    对于抢票.秒杀这种业务,我说说自己对这种高并发的理解吧,这里提出个人认为比较可行的几个方案: 方案一:使用队列来实现 可以基于例如MemcacheQ等这样的消息队列,具体的实现方案这么表述吧 比如有1 ...

  6. java 12306 模拟登陆_GitHub - zuihou/12306-test: 基于java httpclient的12306 买票软件, 仅供学习使用...

    12306-hunter Java Swing C/S版本12306订票助手 本程序完全开放源代码,仅作为技术学习研究交流之用,不得用于任何商业用途:作者不承担任何由此带来的直接或间接责任 特别说明: ...

  7. python github 12306 文贤平_GitHub - itsmartkit/12306-Ticket-Booking: 12306自动抢票系统(2020-01-10)...

    基于Python的12306自动订票系统 系统功能 1.余票监控:发现余票自动下单 2.自动打码:采用第三方免费接口/本地识别算法两种模式,自动验证图片验证码 3.小黑屋:发展有余票但是下单失败的车次 ...

  8. 抢票季:吐槽12306 分享抢票经验

    又是一年一度的春运抢票季,不管你是北上.南下或者东进,在外漂泊了一年,有钱没钱总是要回家过年的. [图片来源于网络] 吐槽:12306抢票的悲伤 据说12306改版了,新版本里面除了UI这些面儿上的改 ...

  9. c# 模拟 网页实现12306登陆、自动刷票、自动抢票完全篇(转)

    这一篇文章,我将从头到尾教大家使用c#模拟网页面登陆12306网站,自动刷票,选择订票人,到最后一步提交订单.研究过HTTP协议的童鞋们都 知道,我们在访问网站时,是有两种方式的,POST和GET方式 ...

  10. c#模拟网页实现12306登陆、自动刷票、自动抢票完全篇

    这一篇文章,我将从头到尾教大家使用c#模拟网页面登陆12306网站,自动刷票,选择订票人,到最后一步提交订单.研究过HTTP协议的童鞋们都知道,我们在访问网站时,是有两种方式的,POST和GET方式, ...

最新文章

  1. BeanShell使用json.jar包处理Json数据
  2. insightface测试验证集
  3. sublime text常用快捷键及多行光标批量操作教程
  4. npm 打包vue,错误 errno 126 / 清空node_modules目录
  5. input file实现批量上传
  6. linux 编译安装python,linux下编译安装python2.7.6
  7. Java 集合框架详解
  8. 第二十八章:化学学校
  9. 《Spring》(十一) ---- 基于注解的依赖注入
  10. 点击更多显示更多内容
  11. 【Python实例第28讲】核主成分
  12. Java8中Map新方法:compute使用详解
  13. mysql数据库repair_MySQL数据库中的REPAIRTABLE语法介绍
  14. Unity动画系统详解1:在Unity中如何制作动画?
  15. 前端笔记1 HTML基础
  16. 青海国家沙漠公园分布及功能区划
  17. 利用代码实现自动刷网课阅读时长功能 JAVA
  18. atom可以做php开发吗,atomcode 一个相当牛B的PHP开发框架,可以到网上去搜索文档,就不帖在这儿了 WEB(ASP,PHP,...) 238万源代码下载- www.pudn.com...
  19. matlab 将矩阵转化成向量的两个方法
  20. 使用ThreeJs从零开始构建3D智能仓库——第四章(添加动画及库区)

热门文章

  1. 手机vnc连接云服务器,云服务器管理终端(VNC连接)说明
  2. Mysql客户端给字段添加中文数据报错SQL错误(1366):Incorrect string value: ‘\xE5\xA4\xA7\xE5\xB9\x85...‘ for column ‘nam
  3. 实验吧:欢迎来到地狱
  4. Hologres性能调优
  5. 使用ret2reg攻击绕过地址混淆
  6. cmt obm odm 代工模式oem_工厂有OEM,ODM,OBM之分吧,分别是什么意思?
  7. 抽象与具体,形而上者谓之道,形而下者谓之器
  8. 杭州电商java招聘_2021年IUU旅行 JAVA开发工程师J11179招聘-IUU旅行 JAVA开发工程师J11179招聘求职信息-拉勾招聘...
  9. Markdown编辑器如何配置图片大小
  10. A Structure from Motion System