예제 #1
0
    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'])
예제 #2
0
    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())
예제 #3
0
    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())
예제 #4
0
파일: test.py 프로젝트: kanbang/myexercise
    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())
예제 #5
0
파일: test.py 프로젝트: kanbang/myexercise
    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())