通过逆向分析猪站做了一个猪站自动化签到脚本

作者:修BUG | 发布时间: | 更新时间:

相信很多小伙伴和我一样,几乎每天都看一眼猪站,但是总是忘记签到导致白白少了很多的积分。要知道这个积分后续在猪站推出猪猪AI是会有很大用处的。于是我就开发了一个自动化签到脚本

核心原理

pigsec.cn 是前后端分离的网站,前端通过 HTTP API 调后端接口。签到功能本质上就是调用一个 API:

1. 登录 — POST /v1/auth/login,用账号密码换一个 JWT token

2. 查状态 — GET /v1/checkin/status,看今天签没签过

3. 签到 — POST /v1/checkin,执行签到

这些 API 是从网站的前端 JS 文件(CheckinModal-D6rBXAN3.js 和 auth-D71-ih35.js)里逆向分析出来的。

所有的源码我都让AI进行规范化并且写了非常详细的中文注释方便大家阅读


配置文件

要使用这个功能首先需要自己手动创建一个checkin_config.json文件用来存放自己的账号与密码

你需要在这里面填写好你对应的账号和密码


两个版本

我一共整了两个版本方便大家来使用,一个是通过服务器添加 cron 定时任务然后定时运行这个脚本来实现自动签到,还有一个是直接写到了Python文件中,你只用在服务器中一直运行这个脚本就行了

通过服务器定时任务版本

脚本做的事

checkin.py 就是模拟浏览器发这 3 个 HTTP 请求:

- 登录拿 token → 带着token查签到状态 → 如果没签就调签到接口

- 加了失败重试(网络波动时自动重试 3 次)

定时执行

部署到云端后,通过 Linux cron(系统自带的定时任务服务)每天 11 点自动跑这个脚本,不需要人工干预。

pip3 install requests

  # 3. 添加 cron 定时任务(每天早上11点签到,随机延迟最多30分钟)
  crontab -e
  # 添加这一行:
  0 8 * * * cd /opt/pigsec-checkin && python3 checkin.py --delay 1800 >> checkin.log 2>&1

写进Python文件中版本

功能说明:

自带定时调度的自动签到脚本。启动后会一直运行,每天在指定时间自动签到。

不需要配置 cron 定时任务,只需启动一次就能持续运行。

checkin.py 的区别:

checkin.py 是一次性脚本(运行一次就退出),需要配合 cron 定时任务使用。

本脚本启动后会一直运行,内部自己计算下次签到时间并睡眠等待。

使用方法:


python3 auto_checkin.py              # 默认每天 11:00 签到

    python3 auto_checkin.py --hour 8     # 改为每天 8:00 签到

    python3 auto_checkin.py --minute 30  # 每天 11:30 签到

部署到服务器(推荐用 nohup 后台运行):

    nohup python3 auto_checkin.py > auto_checkin.log 2>&1 &

    或者用 screen/tmux:

    screen -S checkin

    python3 auto_checkin.py

    # 按 Ctrl+A 然后按 D 分离会话(脚本会继续在后台运行)

工作原理(核心调度逻辑):

    1. 启动后立即尝试签到一次(如果是当天首次运行)

    2. 计算距离下次签到时间(默认明天 11:00)还差多少秒

    3. 调用 time.sleep() 让进程休眠,到时间后操作系统自动唤醒

    4. 唤醒后执行签到,然后再计算下下次的时间,循环往复

    5. 注意:不是轮询检测时间!而是一次性睡到目标时间,不消耗 CPU

退出码说明:

    0 - 签到成功

    1 - 今日已经签到过了(无需重复签到)

    2 - 签到失败(网络错误、登录失败等)

依赖安装:

    pip3 install requests


建议:

这里建议各位小伙伴可以先用checkin.py这个或者auto_checkin.py 配置好checkin_config.json 在本地先跑一下,确认能成功签到后在考虑部署到云端实现自动签到。


源码链接

此处内容已隐藏,请评论后刷新页面查看.


标签:自动签到, 逆向开发