跳转至内容
0
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
  • 版块
  • 讨论
  • 最新
  • 标签
  • 热门
  • 顶端
  • 用户
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Zephyr)
  • 不使用皮肤
折叠
JIKE社区
  1. 首页
  2. 讨论区
  3. 技术专区
  4. 天翼云盘GitHub自动签到源代码失效了,哪位大神改改?

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

已定时 已固定 已锁定 已移动 技术专区
31 帖子 10 发布者 4.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • W 离线
    W 离线
    wushuiyin
    🍌
    写于 最后由 编辑
    #3

    一天能有多少空间增加

    1 条回复 最后回复
    0
    • W 离线
      W 离线
      wushuiyin
      🍌
      写于 最后由 编辑
      #4

      一天能有多少空间增加

      Z 1 条回复 最后回复
      0
      • W wushuiyin

        一天能有多少空间增加

        Z 离线
        Z 离线
        zb1589
        🍌
        写于 最后由 编辑
        #5

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

        1 条回复 最后回复
        0
        • W 离线
          W 离线
          wushuiyin
          🍌
          写于 最后由 编辑
          #6

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

          Y 868 2 条回复 最后回复
          0
          • Z 离线
            Z 离线
            zeze
            🍌
            写于 最后由 zeze 编辑
            #7
            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 条回复 最后回复
            0
            • Z 离线
              Z 离线
              zeze
              🍌
              写于 最后由 编辑
              #8

              只有签到功能,能用就行

              Y 3 条回复 最后回复
              0
              • Z zeze

                只有签到功能,能用就行

                Y 离线
                Y 离线
                yafengliang
                🍌
                写于 最后由 编辑
                #9

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

                1 条回复 最后回复
                0
                • Z zeze

                  只有签到功能,能用就行

                  Y 离线
                  Y 离线
                  yafengliang
                  🍌
                  写于 最后由 编辑
                  #10

                  @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 条回复 最后回复
                  0
                  • W wushuiyin

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

                    Y 离线
                    Y 离线
                    yafengliang
                    🍌
                    写于 最后由 编辑
                    #11

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

                    1 条回复 最后回复
                    0
                    • Z zeze

                      只有签到功能,能用就行

                      Y 离线
                      Y 离线
                      yafengliang
                      🍌
                      写于 最后由 编辑
                      #12

                      @zeze
                      Pycharm确实可以跑

                      登录成功
                      已经签到过了,签到获得4M空间
                      抽奖获得天翼云盘50M空间
                      抽奖获得天翼云盘50M空间
                      
                      1 条回复 最后回复
                      0
                      • Y 离线
                        Y 离线
                        yafengliang
                        🍌
                        写于 最后由 编辑
                        #13

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

                        Y 1 条回复 最后回复
                        1
                        • Y 离线
                          Y 离线
                          yafengliang
                          🍌
                          写于 最后由 编辑
                          #14
                          此主題已被删除!
                          1 条回复 最后回复
                          0
                          • Y yafengliang

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

                            Y 离线
                            Y 离线
                            yafengliang
                            🍌
                            写于 最后由 编辑
                            #15

                            @yafengliang

                            
                            小钉
                            11:54
                            2021-09-07 03:54:36 Tuesday
                            账号:178****9198
                            密码:登录成功
                            签到获得51M空间
                            抽奖次数不足
                            抽奖次数不足
                            账号:173****2113
                            密码:登录成功
                            签到获得4M空间
                            抽奖次数不足
                            抽奖次数不足
                            
                            1 条回复 最后回复
                            0
                            • L 离线
                              L 离线
                              LMY
                              写于 最后由 编辑
                              #16

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

                              Y 1 条回复 最后回复
                              0
                              • L 离线
                                L 离线
                                LMY
                                写于 最后由 编辑
                                #17

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

                                Y 1 条回复 最后回复
                                0
                                • Z 离线
                                  Z 离线
                                  zeze
                                  🍌
                                  写于 最后由 编辑
                                  #18

                                  凑合这用就行了……

                                  1 条回复 最后回复
                                  0
                                  • 赵 离线
                                    赵 离线
                                    赵信
                                    🍌
                                    写于 最后由 编辑
                                    #19

                                    大佬好强

                                    1 条回复 最后回复
                                    0
                                    • L LMY

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

                                      Y 离线
                                      Y 离线
                                      yafengliang
                                      🍌
                                      写于 最后由 编辑
                                      #20

                                      @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 条回复 最后回复
                                      0
                                      • L LMY

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

                                        Y 离线
                                        Y 离线
                                        yafengliang
                                        🍌
                                        写于 最后由 编辑
                                        #21

                                        @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()
                                        
                                        L 1 条回复 最后回复
                                        1
                                        • Y yafengliang

                                          @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()
                                          
                                          L 离线
                                          L 离线
                                          LMY
                                          写于 最后由 编辑
                                          #22

                                          @yafengliang 好的,谢谢大佬

                                          1 条回复 最后回复
                                          0
                                          回复
                                          • 在新帖中回复
                                          登录后回复
                                          • 从旧到新
                                          • 从新到旧
                                          • 最多赞同


                                          • 1
                                          • 2
                                          Popular Topics - 热门主题
                                          • 蜜雪冰城 0撸券 速度支付宝
                                            N
                                            nop
                                            4
                                            3
                                            974

                                          • 大厂不限格式不限大小
                                            undefined
                                            1
                                            1
                                            25

                                          • 小米云服务618活动,黄金会员39,铂金会员138
                                            chuan85C
                                            chuan85
                                            0
                                            6
                                            220

                                          • 美团18-18券!速度撸起来 !
                                            youhunY
                                            youhun
                                            0
                                            3
                                            410

                                          • <动漫>长歌行 [2025][国漫 动画 剧情]4K
                                            爱之梦梦爱
                                            爱之梦梦
                                            0
                                            2
                                            9

                                          • 娃哈哈活动,随便上传身份证,名字中任意一字首字母为O或D 可领奖品!
                                            8
                                            8lhx.com
                                            0
                                            2
                                            228

                                          • 登录

                                          • 没有帐号? 注册

                                          • 登录或注册以进行搜索。
                                          百度网盘
                                          1,264 个主题
                                          连续剧
                                          725 个主题
                                          国产剧
                                          579 个主题
                                          美剧
                                          349 个主题
                                          中国移动
                                          307 个主题
                                          动画片
                                          239 个主题
                                          中国电信
                                          222 个主题
                                          动作片
                                          209 个主题

                                          107

                                          在线

                                          40.2k

                                          用户

                                          40.0k

                                          主题

                                          110.4k

                                          帖子
                                          • 第一个帖子
                                            最后一个帖子