wps自动签到领取会员脚本

自然
自然
自然
388
文章
443
评论
2020年5月24日12:12:17 17 5193字阅读17分18秒

wps是金山公司推出的国产office办公软件,WPS Office 采用三合一模式,即文字、表格、演示三大组件合并到同一个程序里,全新界面非常美观,拥有体积小、功能强大、使用广泛等优秀特征,其云服务在国内使用还是非常不错的。但是有一点让人比较不喜,那就是广告太多了,一度被专业机构评为了和2345同台竞技的广告软件。

wps推出了每日签到可以领取1-99天会员资格的活动,每日在wps公众号进行签到可以领取89项特权服务,其中最大亮点就是“免广告”,让你告别烦人的弹窗广告。有大佬为了解放双手,特意开发了wps自动签到脚本,基于python3脚本开发。

使用环境python3,自然在这里使用debian系统安装python3环境,使用crontab自动签到。

wps自动签到领取会员脚本

python3环境安装

apt-get install python3
apt-get install python3-pip
pip3 install  pytz

使用过程中如果报错:

Traceback (most recent call last):
  File "wps_scf_ziran.py", line 7, in <module>
    import pytz
ImportError: No module named 'pytz'

执行pip3 install pytz即可安装功能。

脚本代码

先贴脚本main.py:

展开

# !/usr/bin/env python
# coding=utf-8
import requests
import time
import json
import sys
import pytz
import datetime
from io import StringIO

# 参考以下代码解决https访问警告
# from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformWarning
# requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
# requests.packages.urllib3.disable_warnings(InsecurePlatformWarning)

# 初始化日志
sio = StringIO('WPS签到日志\n\n')
sio.seek(0, 2)  # 将读写位置移动到结尾
tz = pytz.timezone('Asia/Shanghai')
nowtime = datetime.datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")
sio.write("--------------------------"+nowtime+"----------------------------\n\n")

# 微信推送
def pushWechat(desp,nowtime):
    SCKEY = 'Server酱消息推送sckey'
    ssckey = SCKEY
    send_url='https://sc.ftqq.com/' + ssckey + '.send'
    params = {
        'text': 'WPS小程序签到提醒' + nowtime,
        'desp': desp
    }
    requests.post(send_url,params=params)

# 主函数
def main():
    # sio.write("\n            ===模拟wps小程序签到===")
    data = {
        "wps_checkin": [
            {
                "name": "wps用户名",
                "sid": "sid代码"
            }
        ],
        "wps_invite": [
            {
                "name": "wps用户名",
                "invite_userid": "wps用户id",
                "sid": []
            }
        ]
    }

    sid = data['wps_checkin']

    for item in sid:
        sio.write("\n为{}签到---↓\n\n".format(item['name']))
        wps_clockin(item['sid'])

    # 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("\n\n==========wps邀请==========\n\n")
    for item in wps_inv:
        sio.write("为{}邀请---↓\n\n".format(item['name']))
        wps_invite(invite_sid, item['invite_userid'])
    desp = sio.getvalue()
    pushWechat(desp,nowtime)
    return desp

# wps接受邀请
def wps_invite(sid: list, invite_userid: int) -> None:
    invite_url = 'http://zt.wps.cn/2018/clock_in/api/invite'
    s = requests.session()
    for index, i in enumerate(sid):
        headers = {
            'sid': i
        }
        r = s.post(invite_url, headers=headers, data={
                   'invite_userid': invite_userid})
        sio.write("ID={}, 状态码: {}, \n\n  请求信息{}\n\n".format(str(index+1).zfill(2), r.status_code, r.text))

# wps签到
def wps_clockin(sid: str) -> None:
    getquestion_url = 'http://zt.wps.cn/2018/clock_in/api/get_question?member=wps'
    s = requests.session()
    # 打卡签到需要参加活动
   
    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(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("选项: {}\n\n".format(resp['data']['options']))
    sio.write("选择答案: {}\n\n".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("答案不对,挨个尝试\n\n")
        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("签到信息: {}\n\n".format(r.text))
    resp = json.loads(r.text)
    # 重新报名
    if resp['msg'] == '前一天未报名':
        sio.write('前一天未报名,报名后第二天签到\n\n')
        signup_url = 'http://zt.wps.cn/2018/clock_in/api/sign_up'
        r=s.get(signup_url, headers={'sid': sid})
        sio.write(r.text)


def main_handler(event, context):
  return main()

if __name__ == '__main__':
    main()

1、将代码保存为main.py文件

2、请依次修改 25、40、41、46、47行中的需要修改的部分内容

3、邀请用户签到可以额外获得会员,每日可邀请最多10个用户,main.py已预置了13个小号用于接受邀请,67-79行信息可选删改

参数修改

为了优化小白的使用,自然特意增加了这一部分。

3.1 Server酱消息推送sckey获取

打开网址:http://sc.ftqq.com/ 并使用github账号进行一键登录

1、选择顶栏“微信推送”绑定自己的微信账户

2、选择顶栏“发送消息”获取sckey填入脚本中

wps自动签到领取会员脚本

3.2 wps用户名、wps id 、sid获取

打开 https://vip.wps.cn 登录账号获取wps用户名和wps id

wps自动签到领取会员脚本

打开 https://zt.wps.cn/ 登录账号,利用浏览器审查功能获取sid

wps自动签到领取会员脚本

设置定时签到

利用crontab功能设置脚本定时执行,主要语句如下:

30 8 * * * /usr/bin/python3 /path/main.py

每天8点30分自动执行签到脚本

总结

每天会将签到结果自动推送至微信上面,方便检查自动签到是否成功。最后提醒一句,以防撕逼:wps条款明确表示通过技术手段获得的wps会员有可能会被吊销甚至封号。所以考虑清楚再使用,自然已经通过这个方式获得了几个月的wps会员,拥有89项特权服务。

 

weinxin
自然博客
快来关注一下,一个linux运维爱好者的个人博客!
自然
  • 本文由 发表于 2020年5月24日12:12:17
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:17   其中:访客  10   博主  7
    • 缙哥哥 缙哥哥 5

      我用的是浏览器插件,每天自动签到,这个也不错,明天试试!

        • 清影觅 清影觅 2

          @ 缙哥哥 方便透露下浏览器插件吗,没有Python基础,想用下简单的,qq525694470,谢谢

        • 缙哥哥 缙哥哥 5

          我觉得完全可以使用宝塔来操作!

            • 自然 自然

              @ 缙哥哥 是的,基于linux操作系统python3环境,可以用宝塔

            • 企鹅博客 企鹅博客 2

              花里胡哨

                • 自然 自然

                  @ 企鹅博客 已经获得一年免费wps会员

                    • 清影觅 清影觅 2

                      @ 自然 大佬。方便加个QQ吗,我不会这个,想问下。qq525694470,谢谢!!!

                        • 自然 自然

                          @ 清影觅 如果不了解这个,可以看一下另一篇文章,使用浏览器自动签到

                            • 清影觅 清影觅 2

                              @ 自然 已经弄好了浏览器插件,但是没有签到完成后的提醒,感觉还是不太行,不过还是谢谢啦

                              • 自然 自然

                                @ 清影觅 魂签是多次签到才会成功

                                • 清影觅 清影觅 2

                                  @ 自然 大佬,想问下,可以通过server酱,把魂签每天签到成功后的消息发到微信上吗

                                  • 自然 自然

                                    @ 清影觅 魂签结合server酱需要自己去整合代码,先声明我不会
                                    魂签wps自动签到脚本有微信提示的

                                    • 清影觅 清影觅 2

                                      @ 自然 对的,我想要的就是魂签签到成功后能够微信提示,我查了好多资料还是没太弄清楚,今天早上魂签签到的WPS没有提示==很疑惑

                                      • 自然 自然

                                        @ 清影觅 签到是wps会员那个公众号给的提示,具体发送时间就不一定了

                                        • 清影觅 清影觅 2

                                          @ 自然 好的,谢谢了,已成功连续三天签到了

                                      • 佲年 佲年 0

                                        @ 自然 大佬我问下那个sid是只要wps_sid这一行的代码就行了吗