每天早上起来第一件事就是打开各个APP签到领积分,太麻烦了。所以我就用Python写了个自动签到脚本,现在用了快半年了,每天自动跑,省心不少。今天分享出来给有需要的朋友。
一、支持哪些平台?
目前脚本支持以下平台:
- 某东(京东)签到领京豆
- 某站(B站)签到领经验
- 某吧(百度贴吧)签到
- 某乎(知乎)签到
- 还有几个其他的就不一一列出了
每个平台都是单独的模块,你可以只启用自己需要的。
二、技术实现
核心原理很简单,就是模拟HTTP请求。每个平台的签到接口不一样,但大致流程都是:
1. 携带Cookie发送请求到签到接口
2. 解析返回结果判断是否签到成功
3. 记录日志
用的库就几个:
- requests:发HTTP请求
- schedule:定时任务
- loguru:日志记录
三、Cookie怎么获取?
这是最关键的一步。每个平台的Cookie获取方式差不多:
1. 在浏览器中登录对应网站
2. 打开开发者工具(F12)
3. 切到Network标签
4. 刷新页面,找到任意一个请求
5. 在请求头中复制Cookie字段的值
注意:Cookie是有有效期的,不同平台不一样。某东的大概30天,某站的可能更长。过期了需要重新获取。
四、脚本结构
项目结构很简单:
auto-checkin/
config.yaml # 配置文件(Cookie等)
main.py # 主入口
checkers/ # 各平台签到模块
jd.py # 京东签到
bilibili.py # B站签到
tieba.py # 贴吧签到
zhihu.py # 知乎签到
utils/
logger.py # 日志工具
notify.py # 通知工具
配置文件用的是YAML格式,方便编辑:
jd:
enabled: true
cookie: \"your_jd_cookie\"
bilibili:
enabled: true
cookie: \"your_bili_cookie\"
每个平台都可以单独开关,不需要的直接enabled设成false。
五、通知功能
签到结果怎么知道呢?我加了几个通知方式:
1. Server酱(微信推送)
2. 钉钉机器人
3. Telegram Bot
4. 企业微信
配一个就行,每天签到完会推送一条消息,告诉你哪些成功了哪些失败了。
六、部署方式
我推荐两种方式:
1. 服务器部署
如果有Linux服务器,直接用cron定时执行就行。每天早上7点跑一次:
0 7 * * * cd /path/to/auto-checkin && python3 main.py
2. GitHub Actions
没有服务器也没关系,用GitHub Actions可以白嫖运行环境。我把脚本推到GitHub仓库,配置一个定时workflow,每天自动跑。唯一的限制是Actions的定时任务可能会有几分钟的延迟。
七、踩过的坑
1. Cookie过期
这是最常见的问题。有些平台改了鉴权方式,原来的Cookie就不能用了。需要定期检查更新。
2. 签到接口变更
平台偶尔会改签到接口,脚本就会失效。我一般每个月检查一次,有变化就更新。
3. 被风控
有些平台对自动化操作有限制,频繁请求可能被封号。建议:
- 每天只签到一次,别多次请求
- 请求间隔加随机延迟
- User-Agent设置成正常的浏览器
4. 时间同步问题
如果用GitHub Actions,服务器时间可能跟你的时区不一样。记得在workflow里设置时区。
八、注意事项
1. 本脚本仅供学习交流,请勿用于商业用途
2. 使用前请了解各平台的使用条款,自动化签到可能违反平台规定
3. Cookie属于敏感信息,不要泄露给他人
4. 建议不要把Cookie直接提交到GitHub,可以用GitHub Secrets
九、后续计划
- 增加更多平台支持
- 做一个简单的Web管理界面
- 支持多账号
- 优化错误重试机制
这个脚本让我每天省了十几分钟,虽然不多,但积少成多嘛。感兴趣的朋友可以自己写一个,真的不难。
有什么问题欢迎留言,也可以分享你的签到技巧。
