🐳 容器化部署,内置定时任务
v2.2-docker 版本更新!
雨云签到工具 容器化部署后可实现每日自动签到~
众所周知,雨云为了防止白嫖加入了TCaptcha验证码,但主包对JS逆向一窍不通,纯请求的方法便走不通了。
因此只能曲线救国,使用 Selenium+ddddocr 来模拟真人操作。
经不严谨测试,目前的方案验证码识别率高达48.3%,不过多次重试最终也能通过验证,那么目的达成!
本分支特色功能:
Dockerfile 与 docker-compose,开箱即用,无需配置环境script/run_bt.sh 脚本,无需配置环境| 分隔),各账号随机浏览器指纹,并发执行git clone --depth 1 https://github.com/LeapYa/Rainyun-Qiandao.git
cd Rainyun-Qiandao
复制 .env.example 为 .env 文件,并填入你的账号信息:
Windows (PowerShell):
copy .env.example .env
Linux/Mac:
cp .env.example .env
编辑 .env 文件,根据里面的提示填入你的雨云账号和密码,多个账号/密码之间请使用竖线 | 分隔
| 变量名 | 说明 | 示例 |
|---|---|---|
RAINYUN_USERNAME | 雨云账号,多账号用 | 分隔 | user1@qq.com|user2@163.com |
RAINYUN_PASSWORD | 对应密码,多账号用 | 分隔 | pass1|pass2 |
| 变量名 | 说明 | 备注 |
|---|---|---|
PUSHPLUS_TOKEN | PushPlus Token | 实名用户 2 万字 / 会员 10 万字 |
WXPUSHER_APP_TOKEN | WXPusher App Token | 限制 4 万字 |
WXPUSHER_UIDS | WXPusher 接收者 UID,多个用 , 分隔 | 个人标识 |
WXPUSHER_TOPIC_IDS | WXPusher 主题 ID,多个用 , 分隔 | 群发标识 |
DINGTALK_ACCESS_TOKEN | 钉钉机器人 Access Token | 限制约 2 万字 |
DINGTALK_SECRET | 钉钉机器人加签密钥 | 可选 |
SMTP_HOST | SMTP 服务器地址 | 如 smtp.qq.com |
SMTP_PORT | SMTP 端口 | 465(SSL) 或 587(TLS) |
SMTP_USER | SMTP 登录用户名 | |
SMTP_PASS | SMTP 授权码 | 不是登录密码 |
SMTP_TO | 收件人邮箱 | 不填则默认发给第一个签到账号 |
关于推送内容超长:当推送内容超过渠道字符限制时,程序会自动降级:完整报告 → 无截图报告 → 精简摘要,无需手动处理。PushPlus 还会先按 10 万字(会员)尝试,失败后自动降级到 2 万字(实名)重试。
| 变量名 | 说明 | 默认值 |
|---|---|---|
SCHEDULE_TIME | 定时执行时间(仅 schedule 模式) | 08:00 |
DEBUG | 开启调试日志 | false |
MAX_DELAY | 多账号错峰启动最大随机延时(秒) | 15 |
MAX_WORKERS | 最大并发线程数 | 3 |
TIMEOUT | 请求超时时间(毫秒) | 30000 |
CHECKIN_MAX_RETRIES | 签到失败最大重试次数 | 2 |
| 变量名 | 说明 | 默认值 |
|---|---|---|
PROXY_API_URL | 代理 IP 接口地址 | 不填则不使用代理 |
| 变量名 | 说明 | 默认值 |
|---|---|---|
SCREENSHOT_MODE | 截图嵌入策略:all 全部 / failed_only 仅失败 / none 无截图 | failed_only |
TINYPNG_API_KEY | TinyPNG API Key(每月免费 500 次) | 不填则本地压缩 |
根据你的不同场景和使用需求,从以下三种模式中选择一种运行
适合长期部署,程序会持续运行,并在每天指定时间(默认08:00)自动执行签到。
# 启动定时服务
sudo docker compose up -d rainyun-schedule
# 查看实时日志
sudo docker compose logs -f rainyun-schedule
# 停止服务
sudo docker compose down
适合测试账号配置是否正确,或者临时手动执行一次签到。运行结束后容器会自动退出。
# 立即执行一次签到(前台运行,可看到实时日志)
sudo docker compose --profile once up rainyun-once
# 或者后台运行
sudo docker compose --profile once up -d rainyun-once
适用于不方便使用 Docker,希望直接在 Linux 服务器(如宝塔面板环境)上运行本工具的用户,如果需要再虚拟主机上运行,请确保您的虚拟主机支持 Python 3.8+ 和 Chromium 浏览器,或者购买和使用特殊虚拟主机(任意使用所有函数/完全ROOT权限的虚拟主机)。
注意:完整安装(Python环境 + Chromium浏览器)需要约 200MB - 300MB 的磁盘空间。如果您的主机空间不足 300MB,请勿尝试安装。
确保您的服务器安装了 Python 3.8+。如果是宝塔面板:
如果您拥有 root 权限或特殊虚拟主机,请务必执行此步骤以安装系统级依赖和浏览器。 (如果无法安装Chromium,只能尝试跳过此步直接运行,但极大率会因为缺失系统库而报错)
# 给予脚本执行权限
chmod +x script/install_chromium.sh
# 运行安装脚本(需要 root 权限)
sudo ./script/install_chromium.sh
如果脚本执行成功,会显示 Chromium 和 ChromeDriver 的版本号。
建议使用虚拟环境(防止污染系统库):
# 创建虚拟环境 (venv)
python3 -m venv venv
# 激活虚拟环境
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
我们提供了一个专门用于配合 Crontab 的启动脚本 script/run_bt.sh。
在宝塔面板中添加计划任务:
# 请修改为实际的Rainyun-Qiandao项目所在路径
bash /www/wwwroot/Rainyun-Qiandao/script/run_bt.sh
如果需要每个账号使用不同的代理IP,可以配置 PROXY_API_URL 环境变量。
由于签到任务时间比较长(大概需要三到五分钟),但免费代理的时效很短,所以如果要配置代理IP,建议购买按量付费的时间较长的代理IP,十几块钱就有一千个了,可以用很久了
在 .env 文件中添加:
# 代理IP接口地址(不填则不使用代理)
PROXY_API_URL=http://your-proxy-api.com/get?token=xxx
程序支持多种常见的代理接口返回格式:
# 格式1:纯文本 192.168.1.1:8080 # 格式2:JSON {"ip": "192.168.1.1", "port": 8080} # 格式3:JSON(proxy字段) {"proxy": "192.168.1.1:8080"} # 格式4:嵌套JSON {"code": 0, "data": {"ip": "192.168.1.1", "port": 8080}} # 格式5:带协议前缀 http://192.168.1.1:8080
.env 配置账号密码及运行参数,并完善文档说明。本项目基于 Rainyun-Qiandao 开发,感谢原作者的开源贡献。
NOTE
免责声明与致谢