對的就是WPS簽到任務(wù),下文就是每天幫你邀請10位好友的教程。如果不做這個(gè)任務(wù)可能就只有最多給2天會(huì)員時(shí)間。所以必須要使用這個(gè)肝起來,其實(shí)很簡單。我已經(jīng)簡化了很多流程了用心看超詳細(xì),不要說你是小白!只要能認(rèn)識(shí)鼠標(biāo)鍵盤的大媽都能照著我這教程一
對的就是WPS簽到任務(wù),下文就是每天幫你邀請10位好友的教程。如果不做這個(gè)任務(wù)可能就只有最多給2天會(huì)員時(shí)間。所以必須要使用這個(gè)肝起來,其實(shí)很簡單。我已經(jīng)簡化了很多流程了
用心看超詳細(xì),不要說你是小白!
只要能認(rèn)識(shí)鼠標(biāo)鍵盤的大媽都能照著我這教程一步一步做下去!

一、獲取自己WPS賬號的 sid 和 userid
1、【userid】
1.1:進(jìn)入 https://zt.wps.cn/2018/clock_in/ 進(jìn)行登陸后點(diǎn)擊自己的昵稱
1.2:頭像旁邊那串?dāng)?shù)字就是userID了,ID 與 昵稱 都要記錄下來哦~
2、獲取【sid】
2.1:sid稍微難獲取一點(diǎn)但用心看一定可以的,在剛才的頁面。按鍵盤【F12】進(jìn)入控制臺(tái) 點(diǎn)擊【Network】
2.2:按一下F5刷新一下頁面在Name欄找到【clock_in】,一般第一個(gè)就是
2.3:將 wps_sid= 后面的一段記錄下來
注意:如果中文控制臺(tái)就是【網(wǎng)絡(luò)】選項(xiàng)
二、配置云函數(shù)
1.1:先登錄騰訊云,鼠標(biāo)滑到產(chǎn)品-基礎(chǔ),點(diǎn)擊云函數(shù)。進(jìn)入后點(diǎn)擊控制臺(tái)
1.2:點(diǎn)擊函數(shù)服務(wù)—新建—自定義創(chuàng)建,把框內(nèi)的代碼刪掉
1.3:復(fù)制以下代碼進(jìn)框里
# !/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行中的需要修改的部分內(nèi)容 # 邀請用戶簽到可以額外獲得會(huì)員,每日可邀請最多10個(gè)用戶,已預(yù)置了13個(gè)小號用于接受邀請,89-101行信息可選刪改 # 參考以下代碼解決https訪問警告 # from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformWarning # requests.packages.urllib3.disable_warnings(InsecureRequestWarning) # requests.packages.urllib3.disable_warnings(InsecurePlatformWarning) # 初始化信息 SCKEY = '*********復(fù)制SERVER醬的SCKEY進(jìn)來*************(保留引號)' data = { "wps_checkin": [ { "name": "*********請自行輸入,僅用于顯示*************(保留雙引號)", "sid": "*********復(fù)制'http://zt.wps.cn'網(wǎng)址cookie中的sid進(jìn)來*************(保留雙引號)" } ], "wps_invite": [ { "name": "*********請自行輸入,僅用于顯示*************(保留雙引號)", "invite_userid": "*********復(fù)制手機(jī)WPS個(gè)人信息中的用戶ID進(jìn)來,類似括號內(nèi)容(191641526)*************(不保留雙引號)", "sid": [] } ] } # 初始化日志 sio = StringIO('WPS簽到日志nn') sio.seek(0, 2) # 將讀寫位置移動(dòng)到結(jié)尾 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) # 主函數(shù) 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: # 獲取當(dāng)前會(huì)員信息 member_url = 'https://zt.wps.cn/2018/clock_in/api/get_data?member=wps' r1 = s.get(member_url, headers={'sid': item['sid']}) # 累計(jì)獲得會(huì)員天數(shù) total_add_day = re.search('"total_add_day":(d+)', r1.text).group(1) sio.write('累計(jì)獲得會(huì)員天數(shù): {}天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('會(huì)員信息: {{ "類型":{}, '.format(resp['data']['vip']['name'])) sio.write('"過期時(shí)間":{} }}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個(gè)賬號被邀請 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("邀請失?。河脩鬒D錯(cuò)誤,請重新復(fù)制手機(jī)WPS個(gè)人信息中的用戶ID并修改'invite_userid'項(xiàng),注意不保留雙引號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={}, 狀態(tài)碼: {}, 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("簽到失?。河脩魋id為空,請重新輸入nn") return 0 elif "*" in sid or sid[0] != "V": sio.write("簽到失?。河脩魋id錯(cuò)誤,請重新輸入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("簽到失?。河脩魋id錯(cuò)誤,請重新輸入nn") return 0 resp = json.loads(r.text) # 判斷是否已打卡 if resp['msg'] == '已打卡': sio.write("簽到信息: {}nn".format(r.text)) return 1 # 判斷是否綁定手機(jī) elif resp['msg'] == '未綁定手機(jī)': sio.write('簽到失敗: 未綁定手機(jī),請綁定手機(jī)后重新運(yùn)行簽到nn') return 0 # 判斷是否重新報(bào)名 elif resp['msg'] == '前一天未報(bào)名': sio.write('前一天未報(bào)名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('報(bào)名信息: 已自動(dòng)報(bào)名,報(bào)名后第二天簽到nn') return 1 else: sio.write('報(bào)名失敗: 請手動(dòng)報(bào)名,報(bào)名后第二天簽到nn') return 0 # 打卡簽到需要參加活動(dòng) 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天文檔分享鏈接有效期", "遠(yuǎn)程下載助手", "輸出長圖片去水印", "PDF轉(zhuǎn)圖片" ], "title": "以下哪些特權(quán)是WPS會(huì)員和超級會(huì)員共同擁有的?" }, "msg": "" } ''' answer_set = { 'WPS會(huì)員全文檢索', '100G', 'WPS會(huì)員數(shù)據(jù)恢復(fù)', 'WPS會(huì)員PDF轉(zhuǎn)doc', 'WPS會(huì)員PDF轉(zhuǎn)圖片', 'WPS圖片轉(zhuǎn)PDF插件', '金山PDF轉(zhuǎn)WORD', 'WPS會(huì)員拍照轉(zhuǎn)文字', '使用WPS會(huì)員修復(fù)', 'WPS全文檢索功能', '有,且無限次', '文檔修復(fù)' } 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("選項(xiàng): {}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) # 答案錯(cuò)誤 if resp['msg'] == 'wrong answer': sio.write("答案不對,挨個(gè)嘗試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 # 判斷是否不在簽到時(shí)間內(nèi) elif resp['msg'] == '不在打卡時(shí)間內(nèi)': sio.write('簽到失敗: 不在打卡時(shí)間內(nèi)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('已自動(dòng)報(bào)名,報(bào)名后請?jiān)O(shè)置在規(guī)定時(shí)間內(nèi)簽到nn') return 1 else: sio.write('報(bào)名失敗: 請手動(dòng)報(bào)名,報(bào)名后第二天簽到nn') return 0 # 其他錯(cuò)誤 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('已自動(dòng)報(bào)名,報(bào)名后請?jiān)O(shè)置在規(guī)定時(shí)間內(nèi)簽到nn') return 1 else: sio.write('報(bào)名失敗: 請手動(dòng)報(bào)名,報(bào)名后第二天簽到nn') return 0 def main_handler(event, context): return main() if __name__ == '__main__': main()
1.4:修改代碼
1.5:第一個(gè)空填寫下方代碼
SCU151894T421bf0e9258c31f827bf68a03f75db4d600589209a79a
1.6:第二項(xiàng)與第四項(xiàng)填寫昵稱,第三項(xiàng)填寫sid,第五項(xiàng)填寫userID。
1.7:向下滑點(diǎn)擊【觸發(fā)器配置】—選擇【自定義觸發(fā)周期】
1.8:Cron表達(dá)式里填入:0 10 8 * * * * 點(diǎn)擊完成
1.9:會(huì)轉(zhuǎn)跳到上視圖界面,點(diǎn)擊【函數(shù)代碼】如果沒有可以手動(dòng)到這個(gè)位置即可
1.10:點(diǎn)擊測試,只要沒有顯示ID報(bào)錯(cuò)就沒問題了
以上就是WPS的全部過程,期待大家領(lǐng)取會(huì)員成功!