diff --git a/lib/itchat/components/login.py b/lib/itchat/components/login.py index 60ca395..3a359ee 100644 --- a/lib/itchat/components/login.py +++ b/lib/itchat/components/login.py @@ -195,13 +195,17 @@ def process_login_info(core, loginContent): core.loginInfo['logintime'] = int(time.time() * 1e3) core.loginInfo['BaseRequest'] = {} cookies = core.s.cookies.get_dict() - skey = re.findall('(.*?)', r.text, re.S)[0] - pass_ticket = re.findall( - '(.*?)', r.text, re.S)[0] - core.loginInfo['skey'] = core.loginInfo['BaseRequest']['Skey'] = skey + res = re.findall('(.*?)', r.text, re.S) + skey = res[0] if res else None + res = re.findall( + '(.*?)', r.text, re.S) + pass_ticket = res[0] if res else None + if skey is not None: + core.loginInfo['skey'] = core.loginInfo['BaseRequest']['Skey'] = skey core.loginInfo['wxsid'] = core.loginInfo['BaseRequest']['Sid'] = cookies["wxsid"] core.loginInfo['wxuin'] = core.loginInfo['BaseRequest']['Uin'] = cookies["wxuin"] - core.loginInfo['pass_ticket'] = pass_ticket + if pass_ticket is not None: + core.loginInfo['pass_ticket'] = pass_ticket # A question : why pass_ticket == DeviceID ? # deviceID is only a randomly generated number