导航首页 » 源码分享 » 用Python写了个自动签到脚本,支持多平台,分享给有需要的人
用Python写了个自动签到脚本,支持多平台,分享给有需要的人

每天早上起来第一件事就是打开各个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管理界面

- 支持多账号

- 优化错误重试机制

 

这个脚本让我每天省了十几分钟,虽然不多,但积少成多嘛。感兴趣的朋友可以自己写一个,真的不难。

 

有什么问题欢迎留言,也可以分享你的签到技巧。