Why8n
Why8n
更新下代码,慢速排队应该解决了。具体来说就是在获取乘客信息后要暂停一点时间,模拟真实用户选择乘客情景。 12306应该对很多请求都进行了监控,当一次提交失败后,下一次快速提交会导致慢速排队,目前的代码对前几次提交应该可以避免慢速排队问题,但若是提交多次,会被12306监控到,从而重新进入慢速排队。
不好意思,很久没上github了。如果按您所说是“慢速排队”机制的话,猜测原理应该是对某些请求间隔进行了计时,那么可以尝试下对间隔请求进行延时,估计就可以越过这个机制。 后续如果有时间,我会抽空看下能不能解决。
我试了一下,是可以的。我是对所有请求都延迟了2秒,都是成功下单了。这两天看下能不能找出具体的请求(只有一个账号囧)
今天测试了下,还是存在慢速这个问题。 具体来说,第一次请求时,需要在获取乘客信息后要暂停一点时间,模拟真实用户选择乘客情景。 然后,12306应该对很多请求都进行了监控,当一次提交失败后,下一次快速提交会导致慢速排队,目前的代码对前几次提交应该可以避免慢速排队问题,但若是提交多次,会被12306监控到,从而重新进入慢速排队。
移动端和网页端的后台应该用的都是同一套逻辑,应该跟你说的加密解密没关系。 慢速我能想到的就是跟请求时间有关系,你可以试下直接对所有请求都进行延时,如果还会出现慢速,证明还有其他机制,如果没有,说明延时可以绕过这个机制(尝试的时候直接延时,因为如果你前面已经被慢速了,证明你的ip已经被12306监控了,可能会对你后面的操作造成干扰)。
12306一天中余票查询接口可能随时变动,请求失败时请重新抓包确认下接口。
@raeuz 新代码已解决这个问题。方法就像@Pytaya说的那样,重复提交请求即可。
@predawnl 更新下代码,按提示输入。