def login(self, verify_code=''):
        """
        登录微信公众平台
        注意在实例化 ``WechatExt`` 的时候，如果没有传入 ``token`` 及 ``cookies`` ，将会自动调用该方法，无需手动调用
        当且仅当捕获到 ``NeedLoginError`` 异常时才需要调用此方法进行登录重试
        :param verify_code: 验证码, 不传入则为无验证码
        :raises LoginVerifyCodeError: 需要验证码或验证码出错，该异常为 ``LoginError`` 的子类
        :raises LoginError: 登录出错异常，异常内容为微信服务器响应的内容，可作为日志记录下来
        """
        url = 'https://mp.weixin.qq.com/cgi-bin/login'
        payload = {
            'username': self.__username,
            'pwd': self.__password,
            'imgcode': verify_code,
            'f': 'json',
        }
        headers = {
            'x-requested-with': 'XMLHttpRequest',
            'referer': 'https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN',
            'Cookie': self.__cookies,
        }
        r = requests.post(url, data=payload, headers=headers)

        s = re.search(r'token=(\d+)', r.text)
        if not s:
            try:
                error_code = json.loads(r.text)['base_resp']['ret']
            except (KeyError, ValueError):
                raise LoginError(r.text)

            if error_code in [-8, -27]:
                raise LoginVerifyCodeError(r.text)
            elif re.search(r'readtemplate', r.text):
                raise LoginError('You need to turn off the safety protection of wechat.')
            else:
                raise LoginError(r.text)
        self.__token = int(s.group(1))

        self.__cookies = ''
        for cookie in r.cookies:
            self.__cookies += cookie.name + '=' + cookie.value + ';'
def login(self, verify_code=''):
        """
        登录微信公众平台
        注意在实例化 ``WechatExt`` 的时候，如果没有传入 ``token`` 及 ``cookies`` ，将会自动调用该方法，无需手动调用
        当且仅当捕获到 ``NeedLoginError`` 异常时才需要调用此方法进行登录重试
        :param verify_code: 验证码, 不传入则为无验证码
        :raises LoginVerifyCodeError: 需要验证码或验证码出错，该异常为 ``LoginError`` 的子类
        :raises LoginError: 登录出错异常，异常内容为微信服务器响应的内容，可作为日志记录下来
        """
        url = 'https://mp.weixin.qq.com/cgi-bin/login'
        payload = {
            'username': self.__username,
            'pwd': self.__password,
            'imgcode': verify_code,
            'f': 'json',
        }
        headers = {
            'x-requested-with': 'XMLHttpRequest',
            'referer': 'https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN',
            'Cookie': self.__cookies,
        }
        r = requests.post(url, data=payload, headers=headers)

        s = re.search(r'token=(\d+)', r.text)
        if not s:
            try:
                error_code = json.loads(r.text)['base_resp']['ret']
            except (KeyError, ValueError):
                raise LoginError(r.text)

            if error_code in [-8, -27]:
                raise LoginVerifyCodeError(r.text)
            elif re.search(r'readtemplate', r.text):
                raise LoginError('You need to turn off the safety protection of wechat.')
            else:
                raise LoginError(r.text)
        self.__token = int(s.group(1))

        self.__cookies = ''
        for cookie in r.cookies:
            self.__cookies += cookie.name + '=' + cookie.value + ';'
def login ( self , verify_code = '' ) : url = 'https://mp.weixin.qq.com/cgi-bin/login' payload = { 'username' : self . __username , 'pwd' : self . __password , 'imgcode' : verify_code , 'f' : 'json' , } headers = { 'x-requested-with' : 'XMLHttpRequest' , 'referer' : 'https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&lang=zh_CN' , 'Cookie' : self . __cookies , } r = requests . post ( url , data = payload , headers = headers ) s = re . search ( r'token=(\d+)' , r . text ) if not s : try : error_code = json . loads ( r . text ) [ 'base_resp' ] [ 'ret' ] except ( KeyError , ValueError ) : raise LoginError ( r . text ) if error_code in [ - 8 , - 27 ] : raise LoginVerifyCodeError ( r . text ) elif re . search ( r'readtemplate' , r . text ) : raise LoginError ( 'You need to turn off the safety protection of wechat.' ) else : raise LoginError ( r . text ) self . __token = int ( s . group ( 1 ) ) self . __cookies = '' for cookie in r . cookies : self . __cookies += cookie . name + '=' + cookie . value + ';'
登录微信公众平台
        注意在实例化 ``WechatExt`` 的时候，如果没有传入 ``token`` 及 ``cookies`` ，将会自动调用该方法，无需手动调用
        当且仅当捕获到 ``NeedLoginError`` 异常时才需要调用此方法进行登录重试
        :param verify_code: 验证码, 不传入则为无验证码
        :raises LoginVerifyCodeError: 需要验证码或验证码出错，该异常为 ``LoginError`` 的子类
        :raises LoginError: 登录出错异常，异常内容为微信服务器响应的内容，可作为日志记录下来
登录微信公众平台 注意在实例化 WechatExt 的时候，如果没有传入 token 及 cookies ，将会自动调用该方法，无需手动调用 当且仅当捕获到 NeedLoginError 异常时才需要调用此方法进行登录重试 : param verify_code : 验证码 不传入则为无验证码 : raises LoginVerifyCodeError : 需要验证码或验证码出错，该异常为 LoginError 的子类 : raises LoginError : 登录出错异常，异常内容为微信服务器响应的内容，可作为日志记录下来