本文首发于公众号 极客枫哥 ,日更分享各种好玩的软件、编程知识和个人成长故事
最近带娃去商场的游乐园玩的比较多,结束后一般会选择去吃绿茶,发现绿茶其实可以通过签到领取满减券。
但是如果让我每天来手动操作显然是很低效的,本文就带大家一起来看看如何逆向小程序的 api 并且编写对应的脚本,放到服务器上每天自动执行。
准备工具
- charles 抓包工具,也可以使用 fiddler 等其他工具
- 有一台服务器
接口逆向
话不多说,直接开干
首先我们打开 charles,接着在微信中打开绿茶餐厅的小程序,进入签到页面
点击 charles中的那个黄扫把,清空已经抓取到的请求,然后点击 立即签到
然后我们就能很清晰的看到发起了哪些请求了

看接口名字也不难发现,这个 sign请求就是对应的签到。可以再二次确认下,我们可以直接右键选择 Repeat再次执行该请求,查看响应内容如下
好了,目标请求找到了,我们直接右键选择 Copy cURL Request,然后直接扔给 chatgpt,让它帮我们写一段 python脚本

把生成的脚本复制保存到本地的 sign.py文件中,尝试中本地直接执行一下看看

也没有什么问题,第一步就完成了
定时执行
第二步就是希望每天能够自动执行这个 python脚本,最简单的方式就是直接使用 cron定时任务,这里我们为了便于管理,可以使用青龙面板。
首先中服务器上安装青龙面板,安装的步骤也很简单,创建一个 qinglong目录,然后新建 docker-compose.yml文件,内容如下:
yaml
services:
web:
image: whyour/qinglong:latest
volumes:
- ./data:/ql/data
ports:
- "5700:5700"
environment:
QlBaseUrl: '/' # 部署路径非必须,以斜杠开头和结尾,比如 /test/
restart: unless-stopped
然后启动容器
bash
docker compose up -d
到服务器安全组中开放 5700 端口或者直接使用 nginx 配置域名都可以,然后访问
进入依赖管理给 python3添加 requests库的依赖

然后进入到 脚本管理 菜单,添加 lvcha-sign.py脚本,内容直接从 chatgpt中复制下来即可

最后我们到 定时任务菜单,新建一个任务,内容如下

任务新建完成后,也可以点击操作栏的运行按钮来测试一下,是否可以运行成功

测试通过了,这样操作完成后,每天的 0 点这个脚本就会自动运行了。
除了自己编写脚本外,在 github 上还有很多别人已经写好的脚本,可以直接订阅拿过来使用
面板也支持任务执行完成后利用钉钉、企微、邮件等多种形式进行通知,就不再这里展开了,大家有兴趣的可以自行探索。