12306自动刷票下单-下单

下单

进入下单界面了
https://kyfw.12306.cn/otn/confirmPassenger/initDc

图片.png


还有一个请求https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs

图片.png


仔细看一下返回值,是我们常用联系人的信息,要下单肯定得选乘客信息嘛。这也是一个post请求,这个REPEAT_SUBMIT_TOKEN=8273d204078ad491f0face93d5c878b9很奇怪,记住,肯定是在它之上的请求中获取的,

图片.png

,很幸运我们看它上面的那个请求initDc中就出现了,没错值是一样的,又搞定一个

图片.png

选乘客票种提交

https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo

图片.png

看看参数,头晕吗?抹掉的是姓名身份证电话信息,除了REPEAT_SUBMIT_TOKEN和空参数,其他的一头雾水,你发现REPEAT_SUBMIT_TOKEN和上面的不一样了是吧,其实是一样的,因为我是写完一部分才进行下面的操作,时间长导致登录失效,所以提交的时候要求重新登录,这个REPEAT_SUBMIT_TOKEN参数就不一样了,也说明这个参数是每次都变化的。
请求有发送的地方,这些参数也必然有填充的地方,向上找,不要放过任何一个请求,css和img请求就算了,然后我们找到了https://kyfw.12306.cn/otn/resources/merged/passengerInfo_js.js?scriptVersion=1.9053
格式化一下,最好是找在线格式化JavaScript代码的,效果更好

图片.png


前两个参数搞定了,然后再看一下getpassengerTickets和getOldPassengers函数

图片.png

passengerTicketStr:O,0,1,xxx,1,xxxxx,xxxxx,N
座位类型,0,票类型(成人/儿童),name,身份类型(身份证/军官证....),身份证,电话号码,保存状态
跟上面这些一一对应一下,还有一个下划线,等你选择两个乘客的时候你就知道了
oldPassengerStr自己分析一下吧

再看下面的请求https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount

图片.png

train_date时间不用解释了,train_no好像跟车次有关哦,对于未知的参数,我们一般先看前面请求的返回值,然后才是document和js请求,从查票请求的拆分结果来看2对应的就是这个,那么下面的车次信息也有了,seatType座位类型

我们前面已经知道了,起始站编号和目的地编号我们也知道,train_location可以在查票信息中找到第15个,这里主要看一下leftTicket参数,同样的道理,在之前的请求中查找,我们发现initDc这个请求中搜到了这个值,key_check_isChange在下面用到(主要是看value值,这里为了截图重新截的图,所以value值不一样,正常的情况是一样的,不用担心)

图片.png

https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue

图片.png


看一下请求参数,所有参数在之前都找到了,包括key_check_isChange

下一个请求
https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random=1512295210042&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=56d3de8fe05b24a2daa92c0351df6cd2

图片.png


请求参数非常明显,random是随机参数,其他的不用再说了
下一个请求
https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random=1512295213365&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=56d3de8fe05b24a2daa92c0351df6cd2

图片.png

EXM?跟上面的是同一个请求?请求确实一样,但是返回值不一样,看到了吗?orderId有值了,在下一个请求中用到了

https://kyfw.12306.cn/otn/confirmPassenger/resultOrderForDcQueue

图片.png

好了请求发完了,打开浏览器看一下订单吧,如果出现未支付订单,恭喜你搞定了

 

图片.png
图片.png

 

图片.png
图片.png

 

补充一下我的执行结果,昨天订票次数用完了,最终执行结果忘了截图,截图重新运行一下,贴一下结果。

番外:

有一些参数我在做的时候并没有详细去追根究底,如果你有兴趣可以看一看
https://kyfw.12306.cn/otn/resources/merged/queryLeftTicket_js.js?scriptVersion=1.9053
图片.png

写博客的时候翻到了这个js,又在里面找到了一些参数的根源
  • 我在写的时候碰到一个特别神奇的问题,给我搞蒙了参数问题可以看一看,千万不要犯我的这个错误
  • 我在文章中提到的几个js请求,后面跟了scriptVersion参数,我发现这个更新等倒是挺频繁的,所以每次还是关注一下
  • 我这个并没有做的特别详细,代码没有整理,没有异常处理,还有一个需求没有写就是判断哪一趟车的哪种票是不是有,能不能预订,毕竟我并不是要写一个非常健壮的抢票软件,就是练一练手,做做积累
  • 高铁票是需要选座的,我只是订了普通的票。等以后再看吧,有需求再补上
  • 总结

    通过整篇文章想给大家提供一个思路,主要是对于请求的参数而言:

    • 首先你应该知道这个参数肯定是在当前请求之前出现的,至于是在哪个请求之后出现的这个就看情况了
    • 我们的参数无外乎就两种情况,一种是服务器发个客户端的,一种是客户端动态生成的。
    • 当我们在前面的请求中去查找参数的时候,我的查找顺序一般是先看xhr请求的返回值,因为这个数据是最纯净的,几乎没有垃圾数据。然后再从document请求中查找,这个里面一般是内嵌js数据,或者html数据,最后才从js请求中去分析数据,这是最麻烦的,也是现在很多反爬都钟情的一种方式。

    我在文中很多地方都提到了这个过程,简单一笔带过,最后整体的把思路说一下,大家反过来再看一下文章,就会意会很多O(∩_∩)O~

     


    如果你觉得我的文章还可以,可以关注我的微信公众号:Python爬虫实战之路
    也可以扫描下面二维码,添加我的微信号

    公众号

     

    微信号

     

    本文作者:星星在线

    本文链接:https://www.cnblogs.com/small-bud/p/7967650.html

    版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

    posted @   星星在线  阅读(1796)  评论(9编辑  收藏  举报
    点击右上角即可分享
    微信分享提示
    💬
    评论
    📌
    收藏
    💗
    关注
    👍
    推荐
    🚀
    回顶
    收起
    🔑
    1. 1 Victory REOL
    Victory - REOL
    00:00 / 00:00
    An audio error has occurred.

    作曲 : Reol

    作词 : Reol

    fade away...do over again...

    fade away...do over again...

    歌い始めの一文字目 いつも迷ってる

    歌い始めの一文字目 いつも迷ってる

    どうせとりとめのないことだけど

    伝わらなきゃもっと意味がない

    どうしたってこんなに複雑なのに

    どうしたってこんなに複雑なのに

    噛み砕いてやらなきゃ伝わらない

    ほら結局歌詞なんかどうだっていい

    僕の音楽なんかこの世になくたっていいんだよ

    Everybody don't know why.

    Everybody don't know why.

    Everybody don't know much.

    僕は気にしない 君は気付かない

    何処にももういないいない

    Everybody don't know why.

    Everybody don't know why.

    Everybody don't know much.

    忘れていく 忘れられていく

    We don't know,We don't know.

    目の前 広がる現実世界がまた歪んだ

    目の前 広がる現実世界がまた歪んだ

    何度リセットしても

    僕は僕以外の誰かには生まれ変われない

    「そんなの知ってるよ」

    気になるあの子の噂話も

    シニカル標的は次の速報

    麻痺しちゃってるこっからエスケープ

    麻痺しちゃってるこっからエスケープ

    遠く遠くまで行けるよ

    安定なんてない 不安定な世界

    安定なんてない 不安定な世界

    安定なんてない きっと明日には忘れるよ

    fade away...do over again...

    fade away...do over again...

    そうだ世界はどこかがいつも嘘くさい

    そうだ世界はどこかがいつも嘘くさい

    綺麗事だけじゃ大事な人たちすら守れない

    くだらない 僕らみんなどこか狂ってるみたい

    本当のことなんか全部神様も知らない

    Everybody don't know why.

    Everybody don't know why.

    Everybody don't know much.

    僕は気にしない 君は気付かない

    何処にももういないいない

    Everybody don't know why.

    Everybody don't know why.

    Everybody don't know much.

    忘れていく 忘れられていく

    We don't know,We don't know.