JIKE
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users

    天翼云盘GitHub自动签到源代码失效了,哪位大神改改?

    技术分享
    10
    31
    1577
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Y
      yafengliang 🍌 last edited by

      import requests, time, re, rsa, json, base64
      from urllib import parse
      
      s = requests.Session()
      
      username = ""
      password = ""
      
      if(username == "" or password == ""):
          username = input("账号:")
          print(username[:3] + '****' + username[7:])
          password = input("密码:")
      
      def main():
          msg = login(username, password)
          if(msg == "error"):
              return None
          else:
              pass
          rand = str(round(time.time()*1000))
          surl = f'https://api.cloud.189.cn/mkt/userSign.action?rand={rand}&clientType=TELEANDROID&version=8.6.3&model=SM-G930K'
          url = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN&activityId=ACT_SIGNIN'
          url2 = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN_PHOTOS&activityId=ACT_SIGNIN'
          headers = {
              'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
              "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
              "Host" : "m.cloud.189.cn",
              "Accept-Encoding" : "gzip, deflate",
          }
          #签到
          response = s.get(surl,headers=headers)
          netdiskBonus = response.json()['netdiskBonus']
          print(f"签到获得{netdiskBonus}M空间")
          headers = {
              'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
              "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
              "Host" : "m.cloud.189.cn",
              "Accept-Encoding" : "gzip, deflate",
          }
          #第一次抽奖
          response = s.get(url,headers=headers)
          if ("prizeName" in response.text):
              #description = response.json()['description']
              #print(f"抽奖获得{description}")
              prizeName = response.json()['prizeName']
              print(f"抽奖获得{prizeName}")
          else:
              try:
                  if(response.json()['errorCode'] == "User_Not_Chance"):
                      print("抽奖次数不足")
                  else:
                      print(response.text)
              except:
                      print(str(response.status_code) + response.text)
          #第二次抽奖
          response = s.get(url2,headers=headers)
          if ("prizeName" in response.text):
              #description = response.json()['description']
              #print(f"抽奖获得{description}")
              prizeName = response.json()['prizeName']
              print(f"抽奖获得{prizeName}")
          else:
              try:
                  if(response.json()['errorCode'] == "User_Not_Chance"):
                      print("抽奖次数不足")
                  else:
                      print(response.text)
              except:
                      print(str(response.status_code) + response.text)
      
      BI_RM = list("0123456789abcdefghijklmnopqrstuvwxyz")
      def int2char(a):
          return BI_RM[a]
      
      b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
      def b64tohex(a):
          d = ""
          e = 0
          c = 0
          for i in range(len(a)):
              if list(a)[i] != "=":
                  v = b64map.index(list(a)[i])
                  if 0 == e:
                      e = 1
                      d += int2char(v >> 2)
                      c = 3 & v
                  elif 1 == e:
                      e = 2
                      d += int2char(c << 2 | v >> 4)
                      c = 15 & v
                  elif 2 == e:
                      e = 3
                      d += int2char(c)
                      d += int2char(v >> 2)
                      c = 3 & v
                  else:
                      e = 0
                      d += int2char(c << 2 | v >> 4)
                      d += int2char(15 & v)
          if e == 1:
              d += int2char(c << 2)
          return d
      
      
      def rsa_encode(j_rsakey, string):
          rsa_key = f"-----BEGIN PUBLIC KEY-----\n{j_rsakey}\n-----END PUBLIC KEY-----"
          pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(rsa_key.encode())
          result = b64tohex((base64.b64encode(rsa.encrypt(f'{string}'.encode(), pubkey))).decode())
          return result
      
      def calculate_md5_sign(params):
          return hashlib.md5('&'.join(sorted(params.split('&'))).encode('utf-8')).hexdigest()
      
      def login(username, password):
          url = "https://cloud.189.cn/udb/udb_login.jsp?pageId=1&redirectURL=/main.action"
          r = s.get(url)
          print("r:::"+r.text)
          captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
          lt = re.findall(r'lt = "(.+?)"', r.text)[0]
          returnUrl = re.findall(r"returnUrl = '(.+?)'", r.text)[0]
          paramId = re.findall(r'paramId = "(.+?)"', r.text)[0]
          j_rsakey = re.findall(r'j_rsaKey" value="(\S+)"', r.text, re.M)[0]
          s.headers.update({"lt": lt})
      
          username = rsa_encode(j_rsakey, username)
          password = rsa_encode(j_rsakey, password)
          url = "https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do"
          headers = {
              'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/76.0',
              'Referer': 'https://open.e.189.cn/',
              }
          data = {
              "appKey": "cloud",
              "accountType": '01',
              "userName": f"{{RSA}}{username}",
              "password": f"{{RSA}}{password}",
              "validateCode": "",
              "captchaToken": captchaToken,
              "returnUrl": returnUrl,
              "mailSuffix": "@189.cn",
              "paramId": paramId
              }
          r = s.post(url, data=data, headers=headers, timeout=5)
          if(r.json()['result'] == 0):
              print(r.json()['msg'])
          else:
              print(r.json()['msg'])
              return "error"
          redirect_url = r.json()['toUrl']
          r = s.get(redirect_url)
          return s
      
      if __name__ == "__main__":
          main()
      

      融合了钉钉机器人、Server酱、企业微信签到通知

      1 Reply Last reply Reply Quote 1
      • Y
        yafengliang 🍌 last edited by

        url = "https://cloud.189.cn/udb/udb_login.jsp?pageId=1&redirectURL=/main.action"
        r = s.get(url)
        print("r:::"+r.text)
        captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
        lt = re.findall(r'lt = "(.+?)"', r.text)[0]
        returnUrl = re.findall(r"returnUrl = '(.+?)'", r.text)[0]
        paramId = re.findall(r'paramId = "(.+?)"', r.text)[0]
        j_rsakey = re.findall(r'j_rsaKey" value="(\S+)"', r.text, re.M)[0]
        s.headers.update({"lt": lt})

        在login这个方法中,captchaToken、li、returnurl等参数已经没了,排查发现url = "https://cloud.189.cn/udb/udb_login.jsp?pageId=1&redirectURL=/main.action"的Url好像是更改了,改成了/autoLogin.do导致上述参数无效,主要是加密方式j_rsakey为取到,这个参数取到后还是可以继续排查,卡到这个点了,大神出来瞅瞅

        1 Reply Last reply Reply Quote 0
        • W
          wushuiyin 🍌 last edited by

          一天能有多少空间增加

          1 Reply Last reply Reply Quote 0
          • W
            wushuiyin 🍌 last edited by

            一天能有多少空间增加

            Z 1 Reply Last reply Reply Quote 0
            • Z
              zb1589 🍌 @wushuiyin last edited by

              @wushuiyin 2个固定50M,1个随机几十M

              1 Reply Last reply Reply Quote 0
              • W
                wushuiyin 🍌 last edited by

                前段时间的几个bug 撸了几个t 撸了近9年的会员 估计后面还会有bug

                Y 86 2 Replies Last reply Reply Quote 0
                • Z
                  zeze 🍌 last edited by zeze

                  import base64
                  import os
                  import re
                  import requests
                  import rsa
                  import time
                  
                  s = requests.Session()
                  env_dist = os.environ
                  username = 'xxxxx' #请输入你的天翼云账号
                  password = 'xxxxxx' #请输入密码
                  
                  
                  if(username == "USERNAME" or password == "PASSWORD" or username == "" or password == ""):
                      raise Exception("Need USERNAME/PASSWORD!")
                  
                  def main():
                  
                      msg = login(username, password)
                      if(msg == "error"):
                          return None
                      else:
                          pass
                      rand = str(round(time.time()*1000))
                      surl = 'https://api.cloud.189.cn/mkt/userSign.action?rand='+rand+'&clientType=TELEANDROID&version=8.6.3&model=SM-G930K'
                      url = 'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN&activityId=ACT_SIGNIN'
                      url2 = 'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN_PHOTOS&activityId=ACT_SIGNIN'
                      headers = {
                          'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
                          "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
                          "Host" : "m.cloud.189.cn",
                          "Accept-Encoding" : "gzip, deflate",
                      }
                      #签到
                      response = s.get(surl,headers=headers)
                      netdiskBonus = response.json()['netdiskBonus']
                      if(response.json()['isSign'] == "false"):
                          print("未签到,签到获得"+netdiskBonus+"M空间")
                      else:
                          print("已经签到过了,签到获得"+str(netdiskBonus)+"M空间")
                      headers = {
                          'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
                          "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
                          "Host" : "m.cloud.189.cn",
                          "Accept-Encoding" : "gzip, deflate",
                      }
                      #第一次抽奖
                      response = s.get(url,headers=headers)
                      if ("errorCode" in response.text):
                          if(response.json()['errorCode'] == "User_Not_Chance"):
                              print("抽奖次数不足")
                          else:
                              print(response.text)
                      else:
                          description = response.json()['description']
                          print("第一次抽奖获得"+description)
                      #第二次抽奖
                      response = s.get(url2,headers=headers)
                      if ("errorCode" in response.text):
                          if(response.json()['errorCode'] == "User_Not_Chance"):
                              print("抽奖次数不足")
                          else:
                              print(response.text)
                      else:
                          description = response.json()['description']
                          print("第二次抽奖获得"+description)
                  
                  
                  BI_RM = list("0123456789abcdefghijklmnopqrstuvwxyz")
                  def int2char(a):
                      return BI_RM[a]
                  
                  b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                  def b64tohex(a):
                      d = ""
                      e = 0
                      c = 0
                      for i in range(len(a)):
                          if list(a)[i] != "=":
                              v = b64map.index(list(a)[i])
                              if 0 == e:
                                  e = 1
                                  d += int2char(v >> 2)
                                  c = 3 & v
                              elif 1 == e:
                                  e = 2
                                  d += int2char(c << 2 | v >> 4)
                                  c = 15 & v
                              elif 2 == e:
                                  e = 3
                                  d += int2char(c)
                                  d += int2char(v >> 2)
                                  c = 3 & v
                              else:
                                  e = 0
                                  d += int2char(c << 2 | v >> 4)
                                  d += int2char(15 & v)
                      if e == 1:
                          d += int2char(c << 2)
                      return d
                  
                  
                  def rsa_encode(j_rsakey, string):
                      rsa_key = "-----BEGIN PUBLIC KEY-----\n"+j_rsakey+"\n-----END PUBLIC KEY-----"
                      pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(rsa_key.encode())
                      result = b64tohex((base64.b64encode(rsa.encrypt(string.encode(), pubkey))).decode())
                      return result
                  
                  def calculate_md5_sign(params):
                      return hashlib.md5('&'.join(sorted(params.split('&'))).encode('utf-8')).hexdigest()
                  
                  def login(username, password):
                      url = "https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html"
                      r = s.get(url)
                      captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
                      lt = re.findall(r'lt = "(.+?)"', r.text)[0]
                      returnUrl = re.findall(r"returnUrl = '(.+?)'", r.text)[0]
                      paramId = re.findall(r'paramId = "(.+?)"', r.text)[0]
                      j_rsakey = re.findall(r'j_rsaKey" value="(\S+)"', r.text, re.M)[0]
                      s.headers.update({"lt": lt})
                  
                      username = rsa_encode(j_rsakey, username)
                      password = rsa_encode(j_rsakey, password)
                      url = "https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do"
                      headers = {
                          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/76.0',
                          'Referer': 'https://open.e.189.cn/',
                          }
                      data = {
                          "appKey": "cloud",
                          "accountType": '01',
                          "userName": "{RSA}"+username,
                          "password": "{RSA}"+password,
                          "validateCode": "",
                          "captchaToken": captchaToken,
                          "returnUrl": returnUrl,
                          "mailSuffix": "@189.cn",
                          "paramId": paramId
                          }
                      r = s.post(url, data=data, headers=headers, timeout=5)
                      if(r.json()['result'] == 0):
                          print(r.json()['msg'])
                      else:
                          if(SCKEY == ""):
                              print(r.json()['msg'])
                          else:
                              msg = r.json()['msg']
                              print(msg)
                          return "error"
                      redirect_url = r.json()['toUrl']
                      r = s.get(redirect_url)
                      return s
                  if __name__ == "__main__":
                      main()
                  
                  1 Reply Last reply Reply Quote 0
                  • Z
                    zeze 🍌 last edited by

                    只有签到功能,能用就行

                    Y 3 Replies Last reply Reply Quote 0
                    • Y
                      yafengliang 🍌 @zeze last edited by

                      @zeze 在GitHub上还能正常用么?我的报下标越界

                      1 Reply Last reply Reply Quote 0
                      • Y
                        yafengliang 🍌 @zeze last edited by

                        @zeze 签到账号1
                        Traceback (most recent call last):
                        File "C189Checkin.py", line 154, in <module>
                        main()
                        File "C189Checkin.py", line 15, in main
                        msg = login(username, password)
                        File "C189Checkin.py", line 118, in login
                        captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
                        IndexError: list index out of range
                        Error: Process completed with exit code 1.

                        1 Reply Last reply Reply Quote 0
                        • Y
                          yafengliang 🍌 @wushuiyin last edited by

                          @wushuiyin 卧槽,这好事怎么不分享经验,不厚道哟

                          1 Reply Last reply Reply Quote 0
                          • Y
                            yafengliang 🍌 @zeze last edited by

                            @zeze
                            Pycharm确实可以跑

                            登录成功
                            已经签到过了,签到获得4M空间
                            抽奖获得天翼云盘50M空间
                            抽奖获得天翼云盘50M空间
                            
                            1 Reply Last reply Reply Quote 0
                            • Y
                              yafengliang 🍌 last edited by

                              找了下区别,确实是登录的url更换了https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html

                              Y 1 Reply Last reply Reply Quote 1
                              • Y
                                yafengliang 🍌 last edited by

                                This post is deleted!
                                1 Reply Last reply Reply Quote 0
                                • Y
                                  yafengliang 🍌 @yafengliang last edited by

                                  @yafengliang

                                  
                                  小钉
                                  11:54
                                  2021-09-07 03:54:36 Tuesday
                                  账号:178****9198
                                  密码:登录成功
                                  签到获得51M空间
                                  抽奖次数不足
                                  抽奖次数不足
                                  账号:173****2113
                                  密码:登录成功
                                  签到获得4M空间
                                  抽奖次数不足
                                  抽奖次数不足
                                  
                                  1 Reply Last reply Reply Quote 0
                                  • L
                                    LMY last edited by

                                    这个单独写成.py能在本地跑吗?

                                    Y 1 Reply Last reply Reply Quote 0
                                    • L
                                      LMY last edited by

                                      大佬们
                                      这种怎么办呀?
                                      获得1,获得1是个什么鬼?

                                      Y 1 Reply Last reply Reply Quote 0
                                      • Z
                                        zeze 🍌 last edited by

                                        凑合这用就行了……

                                        1 Reply Last reply Reply Quote 0
                                        • 赵
                                          赵信 🍌 last edited by

                                          大佬好强

                                          1 Reply Last reply Reply Quote 0
                                          • Y
                                            yafengliang 🍌 @LMY last edited by

                                            @lmy 可以的

                                            import requests, time, re, rsa, json, base64
                                            from urllib import parse
                                            
                                            s = requests.Session()
                                            
                                            username = "账号"
                                            password = "密码"
                                            
                                            if(username == "" or password == ""):
                                                username = input("账号:")
                                                print(username[:3] + '****' + username[7:])
                                                password = input("密码:")
                                            
                                            def main():
                                                msg = login(username, password)
                                                if(msg == "error"):
                                                    return None
                                                else:
                                                    pass
                                                rand = str(round(time.time()*1000))
                                                surl = f'https://api.cloud.189.cn/mkt/userSign.action?rand={rand}&clientType=TELEANDROID&version=8.6.3&model=SM-G930K'
                                                url = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN&activityId=ACT_SIGNIN'
                                                url2 = f'https://m.cloud.189.cn/v2/drawPrizeMarketDetails.action?taskId=TASK_SIGNIN_PHOTOS&activityId=ACT_SIGNIN'
                                                headers = {
                                                    'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
                                                    "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
                                                    "Host" : "m.cloud.189.cn",
                                                    "Accept-Encoding" : "gzip, deflate",
                                                }
                                                #签到
                                                response = s.get(surl,headers=headers)
                                                netdiskBonus = response.json()['netdiskBonus']
                                                print(f"签到获得{netdiskBonus}M空间")
                                                headers = {
                                                    'User-Agent':'Mozilla/5.0 (Linux; Android 5.1.1; SM-G930K Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36 Ecloud/8.6.3 Android/22 clientId/355325117317828 clientModel/SM-G930K imsi/460071114317824 clientChannelId/qq proVersion/1.0.6',
                                                    "Referer" : "https://m.cloud.189.cn/zhuanti/2016/sign/index.jsp?albumBackupOpened=1",
                                                    "Host" : "m.cloud.189.cn",
                                                    "Accept-Encoding" : "gzip, deflate",
                                                }
                                                #第一次抽奖
                                                response = s.get(url,headers=headers)
                                                if ("prizeName" in response.text):
                                                    #description = response.json()['description']
                                                    #print(f"抽奖获得{description}")
                                                    prizeName = response.json()['prizeName']
                                                    print(f"抽奖获得{prizeName}")
                                                else:
                                                    try:
                                                        if(response.json()['errorCode'] == "User_Not_Chance"):
                                                            print("抽奖次数不足")
                                                        else:
                                                            print(response.text)
                                                    except:
                                                            print(str(response.status_code) + response.text)
                                                #第二次抽奖
                                                response = s.get(url2,headers=headers)
                                                if ("prizeName" in response.text):
                                                    #description = response.json()['description']
                                                    #print(f"抽奖获得{description}")
                                                    prizeName = response.json()['prizeName']
                                                    print(f"抽奖获得{prizeName}")
                                                else:
                                                    try:
                                                        if(response.json()['errorCode'] == "User_Not_Chance"):
                                                            print("抽奖次数不足")
                                                        else:
                                                            print(response.text)
                                                    except:
                                                            print(str(response.status_code) + response.text)
                                            
                                            BI_RM = list("0123456789abcdefghijklmnopqrstuvwxyz")
                                            def int2char(a):
                                                return BI_RM[a]
                                            
                                            b64map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
                                            def b64tohex(a):
                                                d = ""
                                                e = 0
                                                c = 0
                                                for i in range(len(a)):
                                                    if list(a)[i] != "=":
                                                        v = b64map.index(list(a)[i])
                                                        if 0 == e:
                                                            e = 1
                                                            d += int2char(v >> 2)
                                                            c = 3 & v
                                                        elif 1 == e:
                                                            e = 2
                                                            d += int2char(c << 2 | v >> 4)
                                                            c = 15 & v
                                                        elif 2 == e:
                                                            e = 3
                                                            d += int2char(c)
                                                            d += int2char(v >> 2)
                                                            c = 3 & v
                                                        else:
                                                            e = 0
                                                            d += int2char(c << 2 | v >> 4)
                                                            d += int2char(15 & v)
                                                if e == 1:
                                                    d += int2char(c << 2)
                                                return d
                                            
                                            
                                            def rsa_encode(j_rsakey, string):
                                                rsa_key = f"-----BEGIN PUBLIC KEY-----\n{j_rsakey}\n-----END PUBLIC KEY-----"
                                                pubkey = rsa.PublicKey.load_pkcs1_openssl_pem(rsa_key.encode())
                                                result = b64tohex((base64.b64encode(rsa.encrypt(f'{string}'.encode(), pubkey))).decode())
                                                return result
                                            
                                            def calculate_md5_sign(params):
                                                return hashlib.md5('&'.join(sorted(params.split('&'))).encode('utf-8')).hexdigest()
                                            
                                            def login(username, password):
                                                url = "https://cloud.189.cn/api/portal/loginUrl.action?redirectURL=https://cloud.189.cn/web/redirect.html"
                                                r = s.get(url)
                                                print("r:::"+r.text)
                                                captchaToken = re.findall(r"captchaToken' value='(.+?)'", r.text)[0]
                                                lt = re.findall(r'lt = "(.+?)"', r.text)[0]
                                                returnUrl = re.findall(r"returnUrl = '(.+?)'", r.text)[0]
                                                paramId = re.findall(r'paramId = "(.+?)"', r.text)[0]
                                                j_rsakey = re.findall(r'j_rsaKey" value="(\S+)"', r.text, re.M)[0]
                                                s.headers.update({"lt": lt})
                                            
                                                username = rsa_encode(j_rsakey, username)
                                                password = rsa_encode(j_rsakey, password)
                                                url = "https://open.e.189.cn/api/logbox/oauth2/loginSubmit.do"
                                                headers = {
                                                    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/76.0',
                                                    'Referer': 'https://open.e.189.cn/',
                                                    }
                                                data = {
                                                    "appKey": "cloud",
                                                    "accountType": '01',
                                                    "userName": f"{{RSA}}{username}",
                                                    "password": f"{{RSA}}{password}",
                                                    "validateCode": "",
                                                    "captchaToken": captchaToken,
                                                    "returnUrl": returnUrl,
                                                    "mailSuffix": "@189.cn",
                                                    "paramId": paramId
                                                    }
                                                r = s.post(url, data=data, headers=headers, timeout=5)
                                                if(r.json()['result'] == 0):
                                                    print(r.json()['msg'])
                                                else:
                                                    print(r.json()['msg'])
                                                    return "error"
                                                redirect_url = r.json()['toUrl']
                                                r = s.get(redirect_url)
                                                return s
                                            
                                            if __name__ == "__main__":
                                                main()```
                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post