进入下单界面了 https://kyfw.12306.cn/otn/confirmPassenger/initDc
还有一个请求https://kyfw.12306.cn/otn/confirmPassenger/getPassengerDTOs
仔细看一下返回值,是我们常用联系人的信息,要下单肯定得选乘客信息嘛。这也是一个post请求,这个REPEAT_SUBMIT_TOKEN=8273d204078ad491f0face93d5c878b9很奇怪,记住,肯定是在它之上的请求中获取的,
,很幸运我们看它上面的那个请求initDc中就出现了,没错值是一样的,又搞定一个
https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo
看看参数,头晕吗?抹掉的是姓名身份证电话信息,除了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代码的,效果更好
前两个参数搞定了,然后再看一下getpassengerTickets和getOldPassengers函数
passengerTicketStr:O,0,1,xxx,1,xxxxx,xxxxx,N 座位类型,0,票类型(成人/儿童),name,身份类型(身份证/军官证....),身份证,电话号码,保存状态 跟上面这些一一对应一下,还有一个下划线,等你选择两个乘客的时候你就知道了 oldPassengerStr自己分析一下吧
再看下面的请求https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount
train_date时间不用解释了,train_no好像跟车次有关哦,对于未知的参数,我们一般先看前面请求的返回值,然后才是document和js请求,从查票请求的拆分结果来看2对应的就是这个,那么下面的车次信息也有了,seatType座位类型
起始站编号和目的地编号我们也知道,train_location可以在查票信息中找到第15个,这里主要看一下leftTicket参数,同样的道理,在之前的请求中查找,我们发现initDc这个请求中搜到了这个值,key_check_isChange在下面用到(主要是看value值,这里为了截图重新截的图,所以value值不一样,正常的情况是一样的,不用担心)
https://kyfw.12306.cn/otn/confirmPassenger/confirmSingleForQueue
看一下请求参数,所有参数在之前都找到了,包括key_check_isChange
下一个请求 https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random=1512295210042&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=56d3de8fe05b24a2daa92c0351df6cd2
请求参数非常明显,random是随机参数,其他的不用再说了 下一个请求 https://kyfw.12306.cn/otn/confirmPassenger/queryOrderWaitTime?random=1512295213365&tourFlag=dc&_json_att=&REPEAT_SUBMIT_TOKEN=56d3de8fe05b24a2daa92c0351df6cd2
EXM?跟上面的是同一个请求?请求确实一样,但是返回值不一样,看到了吗?orderId有值了,在下一个请求中用到了
https://kyfw.12306.cn/otn/confirmPassenger/resultOrderForDcQueue
好了请求发完了,打开浏览器看一下订单吧,如果出现未支付订单,恭喜你搞定了
补充一下我的执行结果,昨天订票次数用完了,最终执行结果忘了截图,截图重新运行一下,贴一下结果
写博客的时候翻到了这个js,又在里面找到了一些参数的根源
通过整篇文章想给大家提供一个思路,主要是对于请求的参数而言:
我在文中很多地方都提到了这个过程,简单一笔带过,最后整体的把思路说一下,大家反过来再看一下文章,就会意会很多O(∩_∩)O~
本文分享自 python爬虫实战之路 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!