1、python写一个简单的12306抢票
https://blog.csdn.net/qqtMJK/article/details/79375324
这篇文章详细介绍了通过fiddler抓包进行12306火车票购票分析,可以清楚的了解交互的过程。问题是缺少了关键的数据结构,比如座位信息类型信息,这些信息在确认订单步骤中需要。同时代码可读性不强。
2、12306抢票
https://blog.csdn.net/qq_27297393/article/details/80556535
这篇文章的脚本是完整的。缺少文档。(推荐)
3、座位信息类型信息在'https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo'中需要,作为passengerTicketStr参数放在请求中。
-
"商 务 座":"9",
-
"特 等 座":"P",
-
"一 等 座":"M",
-
"二 等 座":"O",
-
"高级软卧":"6",
-
"软 卧":"4",
-
"动 卧":"F",
-
"硬 卧":"3",
-
"软 座":"2",
-
"硬 座":"1"
4、Python爬取12306登录
https://www.52pojie.cn/thread-819754-1-1.html
分析12306登录的代码
5、列车站点代码
列车站点代码,可以通过请求https://kyfw.12306.cn/otn/resources/js/framework/station_name.js链接,通过得到JS脚本中的station_names变量获取,对应的站点以@字符分隔。
6、fiddler抓包
https://www.cnblogs.com/yyhh/p/5140852.html
抓https包,win7系统安装fiddlercertmaker,同时注意安装证书
https://blog.csdn.net/u011304490/article/details/80058951
7、12306之余票查询流程解析
https://www.jianshu.com/p/89f6170991c8
8、12306 api分析
0、登录验证码 https://kyfw.12306.cn/passport/captcha/captcha-image
0.1验证码确认https://kyfw.12306.cn/passport/captcha/captcha-check
0.2验证用户名密码'https://kyfw.12306.cn/passport/web/login
0.3 https://kyfw.12306.cn/passport/web/auth/uamtk
0.4 https://kyfw.12306.cn/otn/uamauthclient
查询车票 https://kyfw.12306.cn/otn/leftTicket/queryZ
1、检查用户是否保持登录成功 https://kyfw.12306.cn/otn/login/checkUser
2、点击预定 https://kyfw.12306.cn/otn/leftTicket/submitOrderRequest
https://kyfw.12306.cn/otn/confirmPassenger/initDc 这个请求主要是获取订单提交时候的2个令牌值(REPEAT_SUBMIT_TOKEN,key_check_isChange)
3、获取联系人 https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs
4、检查选票人信息 https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
提交火车票订单的验证码 https://kyfw.12306.cn/otn/passcodeNew/checkRandCodeAnsyn
验证码响应 https://kyfw.12306.cn/passport/captcha/captcha-check
5、提交订单 https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount
6、确认订单 https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
7、排队等待 https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime
8、订单结果 https://kyfw.12306.cn/otn/confirmPassenger/resultOrderForDcQueue
获取提交订单验证码
https://kyfw.12306.cn/otn/passcodeNew/getPassCodeNew.do?module=passenger&rand=randp&0.4528230968713445
总结:
12306的购票流程可以先通过fiddler抓包,然后根据上面的一些代码试一试。因为12306的api一直会变化,需要及时更新代码。