def checkOrderInfo(self, randCode, token, seat, passenger, cancel_flag=2, tour_flag='dc', bed_level_order_num='000000000000000000000000000000'): def run(self, randCode, token, seat, passenger, cancel_flag, tour_flag, bed_level_order_num): try: url = 'https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo' #{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"submitStatus":true},"messages":[],"validateMessages":{}} ''' cancel_flag=2& bed_level_order_num=000000000000000000000000000000& passengerTicketStr=1%2C0%2C1%2C%E6%A1%8D%E5%A4%BA%E5%A4%BA%2C1%2C431121198907177432%2C13664654645%2CN& oldPassengerStr=%E6%A1%8D%E5%A4%BA%E5%A4%BA%2C1%2C431121198907177432%2C1_& tour_flag=dc& randCode=ka75& _json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 cancel_flag=2& bed_level_order_num=000000000000000000000000000000& passengerTicketStr=1,0,1,桍夺夺,1,431121198907177432,13664654645,N& oldPassengerStr=桍夺夺,1,431121198907177432,1_& tour_flag=dc &randCode=ka75 &_json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 ''' data = [ 'cancel_flag=' + str(cancel_flag), 'bed_level_order_num=' + str(bed_level_order_num), 'passengerTicketStr=' + str(self.getPassengerTicketStr(seat, passenger)), 'oldPassengerStr=' + str(self.getOldPassengers(passenger)), 'tour_flag=' + str(tour_flag), 'randCode=' + str(randCode), '_json_att=', 'REPEAT_SUBMIT_TOKEN=' + str(token)] req = urllib.request.Request(url, '&'.join(data).encode()) req.add_header('Host', 'kyfw.12306.cn') req.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36') req.add_header('Referer', 'https://kyfw.12306.cn/otn/confirmPassenger/initDc') req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8') req.add_header('X-Requested-With', 'XMLHttpRequest') response = self.opener.open(req) self.updateCookie() return {'s': True, 'r': response.read().decode()} except: return {'s': False, 'r': ''} re = run(self, randCode, token, seat, passenger, cancel_flag, tour_flag, bed_level_order_num) while not re['s']: re = run(self, randCode, token, seat, passenger, cancel_flag, tour_flag, bed_level_order_num) return stringHander.checkOrderInfo(re['r'])
def checkOrderInfo(self, randCode, token, passengerTicketStr, oldPassengerStr, cancel_flag=2, tour_flag='dc', bed_level_order_num='000000000000000000000000000000'): url = 'https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo' #{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"submitStatus":true},"messages":[],"validateMessages":{}} ''' cancel_flag=2& bed_level_order_num=000000000000000000000000000000& passengerTicketStr=1%2C0%2C1%2C%E6%A1%8D%E5%A4%BA%E5%A4%BA%2C1%2C431121198907177432%2C13664654645%2CN& oldPassengerStr=%E6%A1%8D%E5%A4%BA%E5%A4%BA%2C1%2C431121198907177432%2C1_& tour_flag=dc& randCode=ka75& _json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 cancel_flag=2&bed_level_order_num=000000000000000000000000000000& passengerTicketStr=1,0,1,桍夺夺,1,431121198907177432,13664654645,N& oldPassengerStr=桍夺夺,1,431121198907177432,1_& tour_flag=dc&randCode=ka75&_json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 ''' data = collections.OrderedDict() data['cancel_flag'] = cancel_flag data['bed_level_order_num'] = bed_level_order_num data['passengerTicketStr'] = passengerTicketStr data['oldPassengerStr'] = oldPassengerStr data['tour_flag'] = tour_flag data['randCode'] = randCode data['_json_att'] = '' data['REPEAT_SUBMIT_TOKEN'] = token print(data) req = urllib.request.Request(url, urllib.parse.urlencode(data).encode()) req.add_header('Host', 'kyfw.12306.cn') req.add_header( 'User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36' ) req.add_header('Referer', 'https://kyfw.12306.cn/otn/confirmPassenger/initDc') req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8') req.add_header('X-Requested-With', 'XMLHttpRequest') response = self.opener.open(req) self.updateCookie() print(response.read().decode()) return stringHander.checkOrderInfo(response.read().decode())
def getQueueCount(self, train_date, train_no, stationTrainCode, seatType, fromStationTelecode, toStationTelecode, leftTicket, purpose_codes, token): url = 'https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount' #{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"count":"50","ticket":"1020103333406560002010201003983035500001","op_2":"false","countT":"0","op_1":"true"},"messages":[],"validateMessages":{}} ''' train_date=Tue+Dec+31+2013+00%3A00%3A00+GMT%2B0800+(CST)& train_no=630000K5280D& stationTrainCode=K528& seatType=1&fromStationTelecode=GZQ&toStationTelecode=SNH& leftTicket=1020103333406560002010201003983035500001& purpose_codes=00&_json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 train_date=Tue+Dec+31+2013+00:00:00+GMT+0800+(CST)&train_no=630000K5280D& stationTrainCode=K528&seatType=1&fromStationTelecode=GZQ& toStationTelecode=SNH&leftTicket=1020103333406560002010201003983035500001& purpose_codes=00&_json_att=&REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 ''' data = collections.OrderedDict() data['train_date'] = time.strftime( '%a %b %d %Y %H:%M:%S GMT 0800 (CST)', time.strptime(train_date, '%Y%m%d')) data['train_no'] = train_no data['stationTrainCode'] = stationTrainCode data['seatType'] = seatType data['fromStationTelecode'] = fromStationTelecode data['toStationTelecode'] = toStationTelecode data['leftTicket'] = leftTicket data['purpose_codes'] = purpose_codes data['_json_att '] = '' data['REPEAT_SUBMIT_TOKEN'] = token req = urllib.request.Request(url, urllib.parse.urlencode(data).encode()) req.add_header('Host', 'kyfw.12306.cn') req.add_header( 'User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36' ) req.add_header('Referer', 'https://kyfw.12306.cn/otn/confirmPassenger/initDc') req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8') req.add_header('X-Requested-With', 'XMLHttpRequest') response = self.opener.open(req) self.updateCookie() return stringHander.checkOrderInfo(response.read().decode())
def checkOrderInfo(self, randCode, token, passengerTicketStr, oldPassengerStr, cancel_flag=2, tour_flag='dc', bed_level_order_num='000000000000000000000000000000'): url = 'https://kyfw.12306.cn/otn/confirmPassenger/checkOrderInfo' #{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"submitStatus":true},"messages":[],"validateMessages":{}} ''' cancel_flag=2& bed_level_order_num=000000000000000000000000000000& passengerTicketStr=1%2C0%2C1%2C%E6%A1%8D%E5%A4%BA%E5%A4%BA%2C1%2C431121198907177432%2C13664654645%2CN& oldPassengerStr=%E6%A1%8D%E5%A4%BA%E5%A4%BA%2C1%2C431121198907177432%2C1_& tour_flag=dc& randCode=ka75& _json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 cancel_flag=2&bed_level_order_num=000000000000000000000000000000& passengerTicketStr=1,0,1,桍夺夺,1,431121198907177432,13664654645,N& oldPassengerStr=桍夺夺,1,431121198907177432,1_& tour_flag=dc&randCode=ka75&_json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 ''' data = collections.OrderedDict() data['cancel_flag'] = cancel_flag data['bed_level_order_num'] = bed_level_order_num data['passengerTicketStr'] = passengerTicketStr data['oldPassengerStr'] = oldPassengerStr data['tour_flag'] = tour_flag data['randCode'] = randCode data['_json_att'] = '' data['REPEAT_SUBMIT_TOKEN'] = token print(data) req = urllib.request.Request(url, urllib.parse.urlencode(data).encode()) req.add_header('Host', 'kyfw.12306.cn') req.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36') req.add_header('Referer', 'https://kyfw.12306.cn/otn/confirmPassenger/initDc') req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8') req.add_header('X-Requested-With', 'XMLHttpRequest') response = self.opener.open(req) self.updateCookie() print(response.read().decode()) return stringHander.checkOrderInfo(response.read().decode())
def getQueueCount(self, train_date, train_no, stationTrainCode, seatType, fromStationTelecode, toStationTelecode, leftTicket, purpose_codes, token): url = 'https://kyfw.12306.cn/otn/confirmPassenger/getQueueCount' #{"validateMessagesShowId":"_validatorMessage","status":true,"httpstatus":200,"data":{"count":"50","ticket":"1020103333406560002010201003983035500001","op_2":"false","countT":"0","op_1":"true"},"messages":[],"validateMessages":{}} ''' train_date=Tue+Dec+31+2013+00%3A00%3A00+GMT%2B0800+(CST)& train_no=630000K5280D& stationTrainCode=K528& seatType=1&fromStationTelecode=GZQ&toStationTelecode=SNH& leftTicket=1020103333406560002010201003983035500001& purpose_codes=00&_json_att=& REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 train_date=Tue+Dec+31+2013+00:00:00+GMT+0800+(CST)&train_no=630000K5280D& stationTrainCode=K528&seatType=1&fromStationTelecode=GZQ& toStationTelecode=SNH&leftTicket=1020103333406560002010201003983035500001& purpose_codes=00&_json_att=&REPEAT_SUBMIT_TOKEN=2a8f974bd77816babf8c0a5a1f653422 ''' data = collections.OrderedDict() data['train_date'] = time.strftime('%a %b %d %Y %H:%M:%S GMT 0800 (CST)', time.strptime(train_date, '%Y%m%d')) data['train_no'] = train_no data['stationTrainCode'] = stationTrainCode data['seatType'] = seatType data['fromStationTelecode'] = fromStationTelecode data['toStationTelecode'] = toStationTelecode data['leftTicket'] = leftTicket data['purpose_codes'] = purpose_codes data['_json_att '] = '' data['REPEAT_SUBMIT_TOKEN'] = token req = urllib.request.Request(url, urllib.parse.urlencode(data).encode()) req.add_header('Host', 'kyfw.12306.cn') req.add_header('User-Agent', 'Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.114 Safari/537.36') req.add_header('Referer', 'https://kyfw.12306.cn/otn/confirmPassenger/initDc') req.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8') req.add_header('X-Requested-With', 'XMLHttpRequest') response = self.opener.open(req) self.updateCookie() return stringHander.checkOrderInfo(response.read().decode())