1316 字
7 分钟

使用Github Action 定时签到科研通

🤖AI 摘要
AI

科研通自动签到:GitHub Actions 每日定时签到#

这是一个用于科研通(AbleSci)网站的自动签到脚本,支持青龙面板GitHub Actions双平台运行。每日自动签到,可配置多个账号,签到结果通过多种渠道推送通知。


daitcl
/
ablesciSign
Waiting for api.github.com...
00K
0K
0K
Waiting...

✨ 核心功能#

  • 🔑 自动登录科研通网站
  • 📅 每日自动签到获取积分(默认 7:40、21:40 执行)
  • 👥 支持多账号批量签到
  • 📊 显示用户信息(用户名、积分、连续签到天数)
  • 🔔 支持多平台消息通知(Server酱、息知、PushPlus等)
  • ⚙️ 支持青龙面板和 GitHub Actions 双平台

🚀 快速上手#

  1. 准备账号:科研通账号(邮箱:密码),多个账号用换行分隔。
  2. 选择部署平台
    • 青龙面板:添加仓库、配置环境变量。
    • GitHub Actions:Fork 仓库、添加 Secrets、启用工作流。
  3. 配置通知(可选):获取推送服务的密钥并添加到环境变量。
  4. 等待定时触发手动运行测试。

详细步骤请参考下方部署指南。


📖 部署指南#

🐉 1. 青龙面板部署#

1.1 添加订阅#
  1. 登录青龙面板,进入 订阅管理
  2. 点击 新建订阅,填写以下信息:
    • 名称科研通签到
    • 类型公开仓库
    • 链接https://github.com/daitcl/ablesciSign.git
    • 定时规则40 7,21 * * *(对应北京时间 7:40 和 21:40)
    • 白名单ablesci.py|sendNotify.py
  3. 点击 确定 保存,并运行一次订阅拉取脚本。
1.2 配置环境变量#

进入 环境变量 页面,点击 新建变量,添加以下变量:

变量名必填说明
ABLESCI_ACCOUNTS科研通账号列表,格式:邮箱1:密码1(多个账号用换行或分号分隔)
SCKEYServer酱 SCKEY(用于通知)
XZKEY息知 XZKEY(用于通知)
PUSH_PLUS_TOKENPushPlus Token(用于通知)

账号格式示例:

user1@example.com:password1
user2@example.com:password2
1.3 安装 Python 依赖#

在青龙面板的 依赖管理 中添加以下 Python 依赖:

  • requests
  • beautifulsoup4

🤖 2. GitHub Actions 部署#

2.1 Fork 仓库#
  1. 访问项目主页:daitcl/ablesciSign
  2. 点击右上角 Fork 按钮,将仓库复制到您的 GitHub 账户。
2.2 设置 Secrets#
  1. 在您的仓库页面,点击 SettingsSecrets and variablesActions
  2. 点击 New repository secret,依次添加以下 Secrets:
Name必填Value
ABLESCI_ACCOUNTS科研通账号列表(格式同青龙面板)
SCKEYServer酱 SCKEY
XZKEY息知 XZKEY
PUSH_PLUS_TOKENPushPlus Token

注意:为避免 GitHub Actions 报错,未使用的通知变量可留空或不添加,但若添加则值必须有效。

2.3 激活工作流#
  1. 点击仓库上方的 Actions 选项卡。
  2. 在左侧选择 AbleSci Auto Sign 工作流。
  3. 点击 Enable workflow 启用。

工作流将按照 .github/workflows/ablesciSign.yml 中定义的 cron 定时执行(默认北京时间 7:40 和 21:40)。


▶️ 3. 手动触发测试#

3.1 青龙面板手动运行#
  • 定时任务 列表中找到 科研通签到 任务,点击右侧的 运行 按钮。
3.2 GitHub Actions 手动触发#
  • Actions 页面选择 AbleSci Auto Sign 工作流,点击 Run workflowRun workflow 手动触发一次。

🔔 通知推送设置#

📡 支持的推送平台#

脚本支持以下推送服务,可同时配置多个(至少一个有效即可):

  • Server酱SCKEY
  • 息知XZKEY
  • PushPlusPUSH_PLUS_TOKEN

若同时配置多个,脚本会依次尝试发送,任一成功即视为通知成功。

🔑 获取推送密钥#

Server酱(SCKEY)#
  1. 访问 Server酱官网,使用 GitHub 登录。
  2. 进入 发送消息页面,复制您的 SendKey(即 SCKEY)。
  3. 添加到环境变量 SCKEY
息知(XZKEY)#
  1. 访问 息知官网,注册或微信扫码登录。
  2. 进入 密钥管理页面,点击 创建密钥,填写名称后生成。
  3. 复制生成的密钥(XZKEY),添加到环境变量 XZKEY
PushPlus(PUSH_PLUS_TOKEN)#
  1. 访问 PushPlus官网,微信扫码登录。
  2. 进入 一对一推送页面,复制页面中的 Token 值。
  3. 添加到环境变量 PUSH_PLUS_TOKEN

⏰ 定时规则详解#

脚本默认执行时间(基于 UTC 时间):

  • 23:40 UTC → 对应 次日北京时间 7:40
  • 13:40 UTC → 对应 北京时间 21:40

如需修改执行时间:

  • 青龙面板:修改订阅的定时规则或任务的 cron 表达式。
  • GitHub Actions:编辑仓库中的 .github/workflows/ablesciSign.yml 文件,修改 on.schedule.cron 字段。

❓ 常见问题解答#

Q1: 为什么签到失败?#

  • 检查账号密码是否正确,注意邮箱和密码中不要包含空格。
  • 确保网络能正常访问科研通网站。
  • 查看运行日志,确认是否是网站改版导致脚本失效,如果是请提交 Issue。

Q2: 如何接收通知?#

  • 在对应平台的环境变量/Secrets 中配置至少一种通知服务的密钥。
  • 脚本执行完成后会自动推送签到结果。

Q3: 可以配置多个账号吗?#

是的,脚本支持多账号。只需在 ABLESCI_ACCOUNTS 中用换行分隔多个 邮箱:密码 即可。脚本会依次处理,并汇总通知。

Q4: 如何查看签到日志?#

  • 青龙面板:在任务日志中查看。
  • GitHub Actions:在 Actions 页面点击对应工作流运行记录,查看详细日志。

Q5: 需要安装额外的依赖吗?#

青龙面板需要手动安装 requestsbeautifulsoup4。GitHub Actions 环境已自动安装,无需额外操作。


📬 反馈与帮助#

  • 项目 Issues:如有问题或建议,欢迎在 GitHub Issues 提出。
使用Github Action 定时签到科研通
https://www.daitcc.top/posts/科研通自动签到github-actions-每日定时签到/
作者
Dait
发布于
2025-08-08
许可协议
CC BY-NC-SA 4.0
如果这篇文章对你有帮助或启发,可以请作者喝杯咖啡 ☕️