java订单号 github_GitHub - github2zhang/J12306: 12306抢票程序JAVA版
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订单号 github_GitHub - github2zhang/J12306: 12306抢票程序JAVA版的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021四川高考成绩位次查询,四川高考排
- 下一篇: 浅析API网关——Ocelot[网关]+