一个自动签到雨云的 Python 脚本,支持命令行、API 和网页界面操作。
此脚本仅作为学习交流使用。
在 Windows 11 与 Ubuntu 24.04.1 LTS 上经过测试。
优点:无需安装浏览器,不使用机器学习,在低配电脑、服务器上也能较快完成签到。
- 前往 GitHub Releases 下载最新版本的
RainyunCheckIn.zip,并把文件解压到一个空目录 - 下载后,进入到目录,运行类似下面的方法,把开头的
python app.py替换为.\RainyunCheckIn.exe即可
本项目使用 Python 3.11.0
创建一个空目录并执行
git clone https://github.com/FalseHappiness/RainyunCheckIn.git安装 Python 包,最好创建虚拟环境运行
pip install -r requirements.txt见配置凭据
python app.py [命令].\RainyunCheckIn.exe [命令]使用 python app.py -h .\RainyunCheckIn.exe -h 查看帮助
在程序同目录创建 config.json 文件,或者使用 --config 指定路径
基本格式如下
{
"auth": {
"x-api-key": "",
"dev-code": "",
"rain-session": ""
},
"headers": {
"Name": "value"
}
}配置凭据登录雨云账号
如果启动命令为 web,可不用配置,但要在调用 API 时传入
按照以下格式填写你的雨云 API 密钥:
{
"auth": {
"x-api-key": "API 密钥"
}
}获取 API 密钥 的方法:
- 登录雨云网站
- 打开 总览 → 用户 → 账户设置 → API 密钥
- 复制
API 密钥或者重新生成一个,并保存到config.json
按照以下格式填写你的雨云 Cookies 信息:
{
"auth": {
"dev-code": "",
"rain-session": ""
}
}获取 Cookies 的方法:
- 登录雨云网站
- 按
(Fn+)F12打开开发者工具(或者右键,然后点击检查) - 转到
应用程序 (Application)选项卡 - 在右侧
存储项目下点开Cookie,找到https://app.rainyun.com/的 Cookie - 复制名称为
dev-code和rain-session的值并保存到config.json
⚠️ 警告: 不要把config.json分享给其他人,否则其他人可以直接操作你的雨云账号!
类似以下格式即可
{
"auth": [
{
"x-api-key": "API Key",
"name": "配置1(昵称,仅用于辨别配置)"
},
{
"dev-code": "Dev code",
"rain-session": "Rain session",
"name": "配置2"
}
]
}配置请求雨云、验证码所用的请求头,可采用以下格式:
{
"headers": {
"Header-Name": "value"
}
}{
"headers": [
{
"name": "Header-Name",
"value": "value"
}
]
}{
"headers": [
[
"Header-Name",
"value"
]
]
}{
"headers": [
"Header-Name: value"
]
}位置参数:
{web,check_in,status}
要执行的命令(web: 开启网页, check_in: 签到, status: 获取签到状态)
可选参数:
-h, --help 显示帮助信息并退出
-a, --auto 是否开启自动模式(命令为 check_in 时生效,默认关闭)
-f, --force 是否跳过签到状态检测(命令为 check_in 时生效,默认关闭)
-p PORT, --port PORT 网页端口(命令为 web 时生效,默认为 31278)
-m {template,brute,speed}, --method {template,brute,speed}
匹配背景块与需选块的方法(命令为 check_in 且开启 自动签到模式 时生效,默认为 template)
-c CONFIG, --config CONFIG
设置 config 文件路径,默认为程序同目录 config.json
示例: python app.py check_in --auto
运行以下命令启动网页界面和 API 接口
python app.py web然后在浏览器中访问 http://localhost:31278 (默认端口31278,可通过--port参数更改)
开启网页并指定端口
.\RainyunCheckIn.exe web --port 14514强制签到(跳过签到状态检测)
python app.py check_in --auto --force自动签到
.\RainyunCheckIn.exe check_in --auto匹配背景块与需选块的方法,具体差异请看匹配方法比较
可选 template brute speed
python app.py check_in -a --method template.\RainyunCheckIn.exe check_in -a -m speed强制签到(跳过签到状态检测)
python app.py check_in --force手动签到
.\RainyunCheckIn.exe check_in查看签到状态
python app.py status.\RainyunCheckIn.exe statuspython app.py check_in -a --config /path/to/config.jsonpython app.py check_in -a --config C:/path/to/config.json可输入相对于工作目录(执行程序的目录)的路径
.\RainyunCheckIn.exe check_in -a -c ./path/to/config.jsonapp.py- 程序入口和命令行接口detect_accuracy.py- 验证码识别准确率检测build.py- 构建可执行文件的脚本src/main.py- 主要逻辑实现src/web.py- 网页支持功能src/ICR.py- 交互式验证码识别(Interactive CAPTCHA Recognition)模块src/utils.py- 实用工具src/version.py- 版本信息static/index.html- 网页主页面static/captcha.html- 签到页面static/env.js- 补充 NodeJS 环境
运行 build.bat 可以构建可执行文件。
自动完成 TCaptcha 时,需要获取请求参数,需要通过 PyMiniRacer 运行 NodeJS 脚本以获取参数。
匹配时会有 10 次尝试,如果 10 次失败,则完成验证码失败。
这些测试仅为简单测试,并未控制每次使用的验证码图片相同。
有不同的方法可以比较背景中的图形和待选择的图形,下列方法按照识别速度排序:
正确率:87% (261/300)
正确率:100% (300/300)
未测试正确率,理论上和 template 方法差不多甚至更准确,但是可能会消耗很长时间。
本项目采用 MIT 许可证。有关详细信息,请参阅 LICENSE 文件。
如果您遇到任何问题或需要请求新功能,请在 GitHub Issues 提出。
如果您可以解决问题,请创建一个 拉取请求。