科技改變生活 · 科技引領未來
對的就是WPS簽到任務,下文就是每天幫你邀請10位好友的教程。如果不做這個任務可能就只有最多給2天會員時間。所以必須要使用這個肝起來,其實很簡單。我已經簡化了很多流程了用心看超詳細,不要說你是小白!只要能認識鼠標鍵盤的大媽都能照著我這教程一
對的就是WPS簽到任務,下文就是每天幫你邀請10位好友的教程。如果不做這個任務可能就只有最多給2天會員時間。所以必須要使用這個肝起來,其實很簡單。我已經簡化了很多流程了
用心看超詳細,不要說你是小白!
只要能認識鼠標鍵盤的大媽都能照著我這教程一步一步做下去!
一、獲取自己WPS賬號的 sid 和 userid
1、【userid】
1.1:進入 https://zt.wps.cn/2018/clock_in/ 進行登陸后點擊自己的昵稱
1.2:頭像旁邊那串數字就是userID了,ID 與 昵稱 都要記錄下來哦~
2、獲取【sid】
2.1:sid稍微難獲取一點但用心看一定可以的,在剛才的頁面。按鍵盤【F12】進入控制臺 點擊【Network】
2.2:按一下F5刷新一下頁面在Name欄找到【clock_in】,一般第一個就是
2.3:將 wps_sid= 后面的一段記錄下來
注意:如果中文控制臺就是【網絡】選項
二、配置云函數
1.1:先登錄騰訊云,鼠標滑到產品-基礎,點擊云函數。進入后點擊控制臺
1.2:點擊函數服務—新建—自定義創建,把框內的代碼刪掉
1.3:復制以下代碼進框里
# !/usr/bin/env python # coding=utf-8 import requests import time import json import sys import pytz import datetime import re from io import StringIO # Python版本 3.6 # 20200717更新:添加簽到失敗提醒 # 請依次修改 23、27、28、33、34行中的需要修改的部分內容 # 邀請用戶簽到可以額外獲得會員,每日可邀請最多10個用戶,已預置了13個小號用于接受邀請,89-101行信息可選刪改 # 參考以下代碼解決https訪問警告 # from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformWarning # requests.packages.urllib3.disable_warnings(InsecureRequestWarning) # requests.packages.urllib3.disable_warnings(InsecurePlatformWarning) # 初始化信息 SCKEY = '*********復制SERVER醬的SCKEY進來*************(保留引號)' data = { "wps_checkin": [ { "name": "*********請自行輸入,僅用于顯示*************(保留雙引號)", "sid": "*********復制'http://zt.wps.cn'網址cookie中的sid進來*************(保留雙引號)" } ], "wps_invite": [ { "name": "*********請自行輸入,僅用于顯示*************(保留雙引號)", "invite_userid": "*********復制手機WPS個人信息中的用戶ID進來,類似括號內容(191641526)*************(不保留雙引號)", "sid": [] } ] } # 初始化日志 sio = StringIO('WPS簽到日志nn') sio.seek(0, 2) # 將讀寫位置移動到結尾 s = requests.session() tz = pytz.timezone('Asia/Shanghai') nowtime = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S") sio.write("--------------------------"+nowtime+"----------------------------nn") # 微信推送 def pushWechat(desp,nowtime): ssckey = SCKEY send_url='https://sc.ftqq.com/' + ssckey + '.send' if '失敗' in desp : params = { 'text': 'WPS小程序簽到失敗提醒' + nowtime, 'desp': desp } else: params = { 'text': 'WPS小程序簽到提醒' + nowtime, 'desp': desp } requests.post(send_url,params=params) # 主函數 def main(): # sio.write("n ===模擬wps小程序簽到===") sid = data['wps_checkin'] for item in sid: sio.write("n為{}簽到---↓nn".format(item['name'])) bl = wps_clockin(item['sid']) if bl == 1: # 獲取當前會員信息 member_url = 'https://zt.wps.cn/2018/clock_in/api/get_data?member=wps' r1 = s.get(member_url, headers={'sid': item['sid']}) # 累計獲得會員天數 total_add_day = re.search('"total_add_day":(d+)', r1.text).group(1) sio.write('累計獲得會員天數: {}天nn'.format(total_add_day)) userinfo_url = 'https://vip.wps.cn/userinfo' r2 = s.get(userinfo_url, headers={'sid': item['sid']}) resp = json.loads(r2.text) sio.write('會員信息: {{ "類型":{}, '.format(resp['data']['vip']['name'])) sio.write('"過期時間":{} }}nn'.format(datetime.datetime.fromtimestamp( resp['data']['vip']['expire_time']).strftime("%Y--%m--%d %H:%M:%S"))) # sys.exit() wps_inv = data['wps_invite'] # 這13個賬號被邀請 invite_sid = [ "V02StVuaNcoKrZ3BuvJQ1FcFS_xnG2k00af250d4002664c02f", "V02SWIvKWYijG6Rggo4m0xvDKj1m7ew00a8e26d3002508b828", "V02Sr3nJ9IicoHWfeyQLiXgvrRpje6E00a240b890023270f97", "V02SBsNOf4sJZNFo4jOHdgHg7-2Tn1s00a338776000b669579", "V02ScVbtm2pQD49ArcgGLv360iqQFLs014c8062e000b6c37b6", "V02S2oI49T-Jp0_zJKZ5U38dIUSIl8Q00aa679530026780e96", "V02ShotJqqiWyubCX0VWTlcbgcHqtSQ00a45564e002678124c", "V02SFiqdXRGnH5oAV2FmDDulZyGDL3M00a61660c0026781be1", "V02S7tldy5ltYcikCzJ8PJQDSy_ElEs00a327c3c0026782526", "V02SPoOluAnWda0dTBYTXpdetS97tyI00a16135e002684bb5c", "V02Sb8gxW2inr6IDYrdHK_ywJnayd6s00ab7472b0026849b17", "V02SwV15KQ_8n6brU98_2kLnnFUDUOw00adf3fda0026934a7f", "V02SC1mOHS0RiUBxeoA8NTliH2h2NGc00a803c35002693584d" ] sio.write("nn==========wps邀請==========nn") for item in wps_inv: sio.write("為{}邀請---↓nn".format(item['name'])) if type(item['invite_userid']) == int: wps_invite(invite_sid, item['invite_userid']) else: sio.write("邀請失敗:用戶ID錯誤,請重新復制手機WPS個人信息中的用戶ID并修改'invite_userid'項,注意不保留雙引號nn") desp = sio.getvalue() pushWechat(desp,nowtime) #print(desp) return desp # wps接受邀請 def wps_invite(sid: list, invite_userid: int) -> None: invite_url = 'http://zt.wps.cn/2018/clock_in/api/invite' for index, i in enumerate(sid): headers = { 'sid': i } r = s.post(invite_url, headers=headers, data={ 'invite_userid': invite_userid}) sio.write("ID={}, 狀態碼: {}, nn 請求信息{}nn".format(str(index+1).zfill(2), r.status_code, r.text)) # wps簽到 def wps_clockin(sid: str): if len(sid) == 0: sio.write("簽到失敗:用戶sid為空,請重新輸入nn") return 0 elif "*" in sid or sid[0] != "V": sio.write("簽到失敗:用戶sid錯誤,請重新輸入nn") return 0 # 打卡簽到 clockin_url = 'http://zt.wps.cn/2018/clock_in/api/clock_in?member=wps' r = s.get(clockin_url, headers={'sid': sid}) if len(r.history) != 0: if r.history[0].status_code == 302: sio.write("簽到失敗:用戶sid錯誤,請重新輸入nn") return 0 resp = json.loads(r.text) # 判斷是否已打卡 if resp['msg'] == '已打卡': sio.write("簽到信息: {}nn".format(r.text)) return 1 # 判斷是否綁定手機 elif resp['msg'] == '未綁定手機': sio.write('簽到失敗: 未綁定手機,請綁定手機后重新運行簽到nn') return 0 # 判斷是否重新報名 elif resp['msg'] == '前一天未報名': sio.write('前一天未報名nn') signup_url = 'http://zt.wps.cn/2018/clock_in/api/sign_up' r=s.get(signup_url, headers={'sid': sid}) resp = json.loads(r.text) if resp['result'] == 'ok': sio.write('報名信息: 已自動報名,報名后第二天簽到nn') return 1 else: sio.write('報名失敗: 請手動報名,報名后第二天簽到nn') return 0 # 打卡簽到需要參加活動 elif resp['msg'] == '答題未通過': getquestion_url = 'http://zt.wps.cn/2018/clock_in/api/get_question?member=wps' r = s.get(getquestion_url, headers={'sid': sid}) ''' { "result": "ok", "data": { "multi_select": 1, "options": [ "30天文檔分享鏈接有效期", "遠程下載助手", "輸出長圖片去水印", "PDF轉圖片" ], "title": "以下哪些特權是WPS會員和超級會員共同擁有的?" }, "msg": "" } ''' answer_set = { 'WPS會員全文檢索', '100G', 'WPS會員數據恢復', 'WPS會員PDF轉doc', 'WPS會員PDF轉圖片', 'WPS圖片轉PDF插件', '金山PDF轉WORD', 'WPS會員拍照轉文字', '使用WPS會員修復', 'WPS全文檢索功能', '有,且無限次', '文檔修復' } resp = json.loads(r.text) # sio.write(resp['data']['multi_select']) # 只做單選題 multi_select==1表示多選題 while resp['data']['multi_select'] == 1: r = s.get(getquestion_url, headers={'sid': sid}) resp = json.loads(r.text) # sio.write('選擇題類型: {}'.format(resp['data']['multi_select'])) answer_id = 3 for i in range(4): opt = resp['data']['options'][i] if opt in answer_set: answer_id = i+1 break sio.write("選項: {}nn".format(resp['data']['options'])) sio.write("選擇答案: {}nn".format(answer_id)) # 提交答案 answer_url = 'http://zt.wps.cn/2018/clock_in/api/answer?member=wps' r = s.post(answer_url, headers={'sid': sid}, data={'answer': answer_id}) resp = json.loads(r.text) # 答案錯誤 if resp['msg'] == 'wrong answer': sio.write("答案不對,挨個嘗試nn") for i in range(4): r = s.post(answer_url, headers={'sid': sid}, data={'answer': i+1}) resp = json.loads(r.text) sio.write(i+1) if resp['result'] == 'ok': sio.write(r.text) break # 打卡簽到 clockin_url = 'http://zt.wps.cn/2018/clock_in/api/clock_in?member=wps' r = s.get(clockin_url, headers={'sid': sid}) sio.write("簽到信息: {}nn".format(r.text)) return 1 # 判斷是否不在簽到時間內 elif resp['msg'] == '不在打卡時間內': sio.write('簽到失敗: 不在打卡時間內nn') signup_url = 'http://zt.wps.cn/2018/clock_in/api/sign_up' r=s.get(signup_url, headers={'sid': sid}) resp = json.loads(r.text) if resp['result'] == 'ok': sio.write('已自動報名,報名后請設置在規定時間內簽到nn') return 1 else: sio.write('報名失敗: 請手動報名,報名后第二天簽到nn') return 0 # 其他錯誤 elif resp['result'] == 'error': sio.write('簽到失敗信息: {}nn'.format(r.text)) signup_url = 'http://zt.wps.cn/2018/clock_in/api/sign_up' r=s.get(signup_url, headers={'sid': sid}) resp = json.loads(r.text) if resp['result'] == 'ok': sio.write('已自動報名,報名后請設置在規定時間內簽到nn') return 1 else: sio.write('報名失敗: 請手動報名,報名后第二天簽到nn') return 0 def main_handler(event, context): return main() if __name__ == '__main__': main()
1.4:修改代碼
1.5:第一個空填寫下方代碼
SCU151894T421bf0e9258c31f827bf68a03f75db4d600589209a79a
1.6:第二項與第四項填寫昵稱,第三項填寫sid,第五項填寫userID。
1.7:向下滑點擊【觸發器配置】—選擇【自定義觸發周期】
1.8:Cron表達式里填入:0 10 8 * * * * 點擊完成
1.9:會轉跳到上視圖界面,點擊【函數代碼】如果沒有可以手動到這個位置即可
1.10:點擊測試,只要沒有顯示ID報錯就沒問題了
以上就是WPS的全部過程,期待大家領取會員成功!
劉龍一