예제 #1
0
 def go_login(self):
     """
     登陆
     :param user: 账户名
     :param passwd: 密码
     :return:
     """
     if self.is_auto_code and self.auto_code_type == 1:
         balance = DamatuApi(
             _get_yaml()["auto_code_account"]["user"],
             _get_yaml()["auto_code_account"]["pwd"]).getBalance()
         if int(balance) < 40:
             raise balanceException(u'余额不足,当前余额为: {}'.format(balance))
     user, passwd = _get_yaml()["set"]["12306account"][0][
         "user"], _get_yaml()["set"]["12306account"][1]["pwd"]
     if not user or not passwd:
         raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
     login_num = 0
     while True:
         getPassCodeNewOrderAndLogin(session=self.session, imgType="login")
         self.randCode = getRandCode(self.is_auto_code, self.auto_code_type)
         login_num += 1
         self.auth()
         if self.codeCheck():
             uamtk = self.baseLogin(user, passwd)
             if uamtk:
                 self.getUserName(uamtk)
                 break
예제 #2
0
파일: login.py 프로젝트: Junkie0901/12306
 def go_login(self):
     """
     登陆
     :param user: 账户名
     :param passwd: 密码
     :return:
     """
     if self.is_aotu_code and self.aotu_code_type == 1:
         balance = DamatuApi(_get_yaml()["damatu"]["uesr"],
                             _get_yaml()["damatu"]["pwd"]).getBalance()
         if int(balance) < 40:
             raise balanceException(u'余额不足,当前余额为: {}'.format(balance))
     user, passwd = _get_yaml()["set"]["12306count"][0]["uesr"], _get_yaml(
     )["set"]["12306count"][1]["pwd"]
     if not user or not passwd:
         raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
     login_num = 0
     while True:
         self.cookietp()
         self.urlConf["getCodeImg"]["req_url"] = self.urlConf["getCodeImg"][
             "req_url"].format(random.random())
         self.readImg(self.urlConf["getCodeImg"])
         self.randCode = self.getRandCode()
         login_num += 1
         self.auth()
         if self.codeCheck():
             uamtk = self.baseLogin(user, passwd)
             if uamtk:
                 self.getUserName(uamtk)
                 break
예제 #3
0
 def baseLogin(self, user, passwd):
     """
     登录过程
     :param user:
     :param passwd:
     :return: 权限校验码
     """
     logurl = self.session.urls["login"]
     logData = {"username": user, "password": passwd, "appid": "otn"}
     tresult = self.session.httpClint.send(logurl, logData)
     if 'result_code' in tresult and tresult["result_code"] == 0:
         print(u"登录成功")
         tk = self.auth()
         if "newapptk" in tk and tk["newapptk"]:
             return tk["newapptk"]
         else:
             return False
     elif 'result_message' in tresult and tresult['result_message']:
         messages = tresult['result_message']
         if messages.find(u"密码输入错误") is not -1:
             raise UserPasswordException("{0}".format(messages))
         else:
             print(u"登录失败: {0}".format(messages))
             print(u"尝试重新登陆")
             return False
     else:
         return False
예제 #4
0
 def go_login(self):
     """
     登陆
     :param user: 账户名
     :param passwd: 密码
     :return:
     """
     if self.is_aotu_code and self.aotu_code_type == 1:
         balance = DamatuApi(_get_yaml()["damatu"]["uesr"], _get_yaml()["damatu"]["pwd"]).getBalance()
         if int(balance) < 40:
             raise balanceException('余额不足,当前余额为: {}'.format(balance))
     user, passwd = _get_yaml()["set"]["12306count"][0]["uesr"], _get_yaml()["set"]["12306count"][1]["pwd"]
     if not user or not passwd:
         raise UserPasswordException("温馨提示: 用户名或者密码为空,请仔细检查")
     login_num = 0
     while True:
         self.cookietp()
         self.httpClint.set_cookies(_jc_save_wfdc_flag="dc", _jc_save_fromStation="%u4E0A%u6D77%u8679%u6865%2CAOH", _jc_save_toStation="%u5170%u5DDE%u897F%2CLAJ", _jc_save_fromDate="2018-02-14", _jc_save_toDate="2018-01-16", RAIL_DEVICEID="EN_3_EGSe2GWGHXJeCkFQ52kHvNCrNlkz9n1GOqqQ1wR0i98WsD8Gj-a3YHZ-XYKeESWgCiJyyucgSwkFOzVHhHqfpidLPcm2vK9n83uzOPuShO3Pl4lCydAtQu4BdFqz-RVmiduNFixrcrN_Ny43135JiEtqLaI")
         self.randCode = self.readImg(self.urlConf["getCodeImg"]["req_url"])
         login_num += 1
         self.auth()
         if self.codeCheck():
             uamtk = self.baseLogin(user, passwd)
             if uamtk:
                 self.getUserName(uamtk)
                 break
예제 #5
0
    def go_login_v2(self, user, passwd, rand_code=None):
        if self.is_auto_code and self.auto_code_type == 1:
            balance = DamatuApi(
                _get_yaml()["auto_code_account"]["user"],
                _get_yaml()["auto_code_account"]["pwd"]).getBalance()
            if int(balance) < 40:
                raise balanceException(u'余额不足,当前余额为: {}'.format(balance))
        if not user or not passwd:
            raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
        login_num = 0

        if rand_code is None:
            self.randCode = getRandCode(self.is_auto_code, self.auto_code_type)
        else:
            self.randCode = rand_code
        login_num += 1
        self.auth()
        status, mess = self.codeCheck()
        if status:
            uamtk, mess = self.baseLogin(user, passwd)
            if uamtk:
                st, name = self.getUserName(uamtk)
            return mess, name
        else:
            return mess, ''
예제 #6
0
    def base_login(self, user, passwd):
        """
        登录过程
        :param user:
        :param passwd:
        :return: 权限校验码
        """
        logurl = self.session.urls["login"]

        login_data = OrderedDict()
        login_data["username"] = user,
        login_data["password"] = passwd,
        login_data["appid"] = "otn",
        login_data["answer"] = self.randCode,

        tresult = self.session.httpClient.send(logurl, login_data)
        if 'result_code' in tresult and tresult["result_code"] == 0:
            print(u"登录成功")
            tk = self.auth()
            if "newapptk" in tk and tk["newapptk"]:
                return tk["newapptk"]
            else:
                return False
        elif 'result_message' in tresult and tresult['result_message']:
            messages = tresult['result_message']
            if messages.find(u"密码输入错误") is not -1:
                raise UserPasswordException("{0}".format(messages))
            else:
                print(u"登录失败: {0}".format(messages))
                print(u"尝试重新登陆")
                return False
        else:
            return False
예제 #7
0
파일: login.py 프로젝트: caoxiaoyugit/12306
    def go_login(self):
        """
        登陆
        :param user: 账户名
        :param passwd: 密码
        :return:
        """
        #user, passwd = TickerConfig.USER, TickerConfig.PWD
        user = input("请输入您的12306账号:")
        passwd = getpass.getpass("请输入密码:")
        if not user or not passwd:
            raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
        login_num = 0
        while True:
            if loginConf(self.session):
                # self.auth()

                result = getPassCodeNewOrderAndLogin1(session=self.session,
                                                      imgType="login")
                if not result:
                    continue
                self.randCode = getRandCode(self.is_auto_code,
                                            self.auto_code_type, result)
                print(self.randCode)
                login_num += 1
                self.auth()
                if self.codeCheck():
                    uamtk = self.baseLogin(user, passwd)
                    if uamtk:
                        self.getUserName(uamtk)
                        break
            else:
                loginAysnSuggest(self.session, username=user, password=passwd)
                login_num += 1
                break
예제 #8
0
 def go_login(self):
     """
     登陆
     :return:
     """
     user, passwd = TickerConfig.USER, TickerConfig.PWD
     if not user or not passwd:
         raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
     login_num = 0
     while True:
         if login_conf(self.session):
             result = get_passcode_neworder_and_login1(session=self.session,
                                                       img_type="login")
             if not result:
                 continue
             self.randCode = get_rand_code(self.is_auto_code,
                                           self.auto_code_type, result)
             print(self.randCode)
             login_num += 1
             self.auth()
             if self.code_check():
                 uamtk = self.base_login(user, passwd)
                 if uamtk:
                     self.get_user_name(uamtk)
                     break
         else:
             login_aysn_suggest(self.session,
                                username=user,
                                password=passwd)
             login_num += 1
             break
예제 #9
0
 def go_login(self):
     """
     登陆
     :param user: 账户名
     :param passwd: 密码
     :return:
     """
     if self.is_auto_code and self.auto_code_type == 1:
         balance = DamatuApi(
             _get_yaml()["auto_code_account"]["user"],
             _get_yaml()["auto_code_account"]["pwd"]).getBalance()
         if int(balance) < 40:
             raise balanceException(u'余额不足,当前余额为: {}'.format(balance))
     user, passwd = _get_yaml()["set"]["12306account"][0][
         "user"], _get_yaml()["set"]["12306account"][1]["pwd"]
     self.user, self.passwd = user, passwd
     if not user or not passwd:
         raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
     # login_num = 0
     while True:
         if not getPassCodeNewOrderAndLogin(session=self.session,
                                            imgType="login"):
             continue
         else:
             # self.check_code()
             break
     pub.subscribe(self.check_code, 'rand_code')
예제 #10
0
    def go_login(self):
        """
        登陆
        :param user: 账户名
        :param passwd: 密码
        :return:
        """
        # if self.is_auto_code and self.auto_code_type == 1:
        #     balance = DamatuApi(_get_yaml()["auto_code_account"]["user"], _get_yaml()["auto_code_account"]["pwd"]).getBalance()
        #     if int(balance) < 40:
        #         raise balanceException(u'余额不足,当前余额为: {}'.format(balance))
        user, passwd = _get_yaml()["set"]["12306account"][0][
            "user"], _get_yaml()["set"]["12306account"][1]["pwd"]
        if not user or not passwd:
            raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
        login_num = 0
        while True:
            if loginConf(self.session):
                # result = getPassCodeNewOrderAndLogin(session=self.session, imgType="login")
                self.auth()

                devicesIdUrl = copy.deepcopy(self.session.urls["getDevicesId"])
                devicesIdUrl["req_url"] = devicesIdUrl["req_url"].format(
                    int(time.time() * 1000))
                devicesIdRsp = self.session.httpClint.send(devicesIdUrl)
                devicesId = eval(
                    devicesIdRsp.split("(")[1].split(")")[0].replace(
                        "'", ""))["dfp"]
                if devicesId:
                    self.session.httpClint.set_cookies(RAIL_DEVICEID=devicesId)

                result = getPassCodeNewOrderAndLogin1(session=self.session,
                                                      imgType="login")
                if not result:
                    continue
                self.randCode = getRandCode(self.is_auto_code,
                                            self.auto_code_type, result)
                login_num += 1
                self.auth()
                if self.codeCheck():
                    uamtk = self.baseLogin(user, passwd)
                    if uamtk:
                        self.getUserName(uamtk)
                        break
            else:
                loginAysnSuggest(self.session, username=user, password=passwd)
                login_num += 1
                break


# if __name__ == "__main__":
#     # main()
#     # logout()
예제 #11
0
파일: login.py 프로젝트: zwc456baby/12306
    def go_login(self):
        """
        登陆
        :param user: 账户名
        :param passwd: 密码
        :return:
        """
        user, passwd = _get_yaml()["set"]["12306account"][0][
            "user"], _get_yaml()["set"]["12306account"][1]["pwd"]
        if not user or not passwd:
            raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
        login_num = 0
        while True:
            if loginConf(self.session):
                self.auth()

                devicesIdUrl = copy.deepcopy(self.session.urls["getDevicesId"])
                devicesIdUrl["req_url"] = devicesIdUrl["req_url"].format(
                    int(time.time() * 1000))
                # devicesIdRsp = self.session.httpClint.send(devicesIdUrl)
                # devicesId = eval(devicesIdRsp.split("(")[1].split(")")[0].replace("'", ""))["dfp"]
                devicesId = "UysLb2cYwsVjyInSzZ0pGOmYplvokmhBjoGNjrinquaUD0id7gkifgF6FvM2TRCL7Df89GZL1lVV763tGhiPhxlNdlE7iQkk496KUGCFZyyWxE4d0XjyHYv9DlsXfKTlrd8RBUdYIYjmWBXWMN65ElDQiO_Rnrul"

                if devicesId:
                    self.session.httpClint.set_cookies(RAIL_DEVICEID=devicesId)

                result = getPassCodeNewOrderAndLogin1(session=self.session,
                                                      imgType="login")
                if not result:
                    continue
                self.randCode = getRandCode(self.is_auto_code,
                                            self.auto_code_type, result)
                print(self.randCode)
                login_num += 1
                self.auth()
                if self.codeCheck():
                    uamtk = self.baseLogin(user, passwd)
                    if uamtk:
                        self.getUserName(uamtk)
                        break
            else:
                loginAysnSuggest(self.session, username=user, password=passwd)
                login_num += 1
                break
예제 #12
0
 def go_login(self):
     """
     登陆
     :param user: 账户名
     :param passwd: 密码
     :return:
     """
     user, passwd = TickerConfig.USER, TickerConfig.PWD
     if not user or not passwd:
         raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
     login_num = 0
     while True:
         uamtk = self.baseLogin(user, passwd)
         if uamtk:
             self.getUserName(uamtk)
             break
         else:
             loginAysnSuggest(self.session, username=user, password=passwd)
             login_num += 1
             break
예제 #13
0
파일: login.py 프로젝트: relay110/12306
    def go_login(self):
        """
        登陆
        :param user: 账户名
        :param passwd: 密码
        :return:
        """
        # if self.is_auto_code and self.auto_code_type == 1:
        #     balance = DamatuApi(_get_yaml()["auto_code_account"]["user"], _get_yaml()["auto_code_account"]["pwd"]).getBalance()
        #     if int(balance) < 40:
        #         raise balanceException(u'余额不足,当前余额为: {}'.format(balance))
        user, passwd = _get_yaml()["set"]["12306account"][0]["user"], _get_yaml()["set"]["12306account"][1]["pwd"]
        if not user or not passwd:
            raise UserPasswordException(u"温馨提示: 用户名或者密码为空,请仔细检查")
        login_num = 0
        while True:
            if loginConf(self.session):
                result = getPassCodeNewOrderAndLogin(session=self.session, imgType="login")
                if not result:
                    continue
                self.randCode = getRandCode(self.is_auto_code, self.auto_code_type, result)
                login_num += 1
                self.auth()
                if self.codeCheck():
                    uamtk = self.baseLogin(user, passwd)
                    if uamtk:
                        self.getUserName(uamtk)
                        break
            else:
                loginAysnSuggest(self.session, username=user, password=passwd)
                login_num += 1
                break



# if __name__ == "__main__":
#     # main()
#     # logout()
예제 #14
0
    def baseLogin(self, user, passwd):
        """
        登录过程
        :param user:
        :param passwd:
        :return: 权限校验码
        """

        if 0 == 0:
            tk = TickerConfig.tk
            if 0 == 0:
                return tk
            else:
                return False
        elif 'result_message' in tresult and tresult['result_message']:
            messages = tresult['result_message']
            if messages.find(u"密码输入错误") is not -1:
                raise UserPasswordException("{0}".format(messages))
            else:
                print(u"登录失败: {0}".format(messages))
                print(u"尝试重新登陆")
                return False
        else:
            return False