- Thanks To JasonYANG170/AutoCheckBJMF ,根据自己学校的签到进行了简化
- 仅根据自己学校的班级魔方需求更改简化代码,仅支持GPS签到(可在范围外),其他功能请到项目AutoCheckBJMF项目查看其他内容
- 可配置多人签到
- 可配置QQ/WX通知签到情况
- 如果你觉得好用,
Please Star
orz
- 自动从指定课程中获取签到项
- 通过模拟表单提交,实现自动签到
- 签到成功后,发送QQ/WX消息通知(可选配,可以不用配置)
在使用该脚本之前,请确保安装以下依赖项:
pip install -r requirements.txt
该脚本需要读取一个名为 data.json
的文件,其中包含必要的配置信息。请参考以下格式配置 data.json
文件:
{
"name": "xxx",
"class": "xxxxxx",
"lat": "xxxxxx",
"lng": "xxxxxx",
"acc": "xxx",
"cookie": "xxxx",
"QmsgKEY": "",
"WXKey": ""
},
- 只需要配置json文件即可;
- py文件可根据实际需求更改
name
: - 随便写,只是方便区分class
- BJMF里的课程ID
lat
- 纬度lng
- 经度acc
- 海拔高度cookie
- 从浏览器中获取的cookie
信息,用于模拟登录状态QmsgKEY
- Qmsg 服务的消息推送密钥,用于QQ发送消息(选填)WXKey
- Server酱-Turbo版,用于微信通知消息(选填)
-
class
- 使用抓包工具(比如HttpCanary
,教程点击这里 ); 抓取一次签到过程,在过滤(Url关键词或者其他)界面中查找g8n
- 具体视实际情况而定,了解到有的是
k8n
,有的是g8n
;代码里是g8n
,若有不同记得修改; - 之后应该只有一条POST请求,为
https://g8n.cn/student/punchs/course/xxxxxx/yyyyyy
, 其中的xxxxxx
就是六位数的课程ID,yyyyyy
就是具体的签到任务,这里不用管yyyyyy,代码中会自动获取
- 具体视实际情况而定,了解到有的是
-
lat
和lng
- 使用地图工具获取当前位置的经纬度,- 比如高德地图的坐标拾取器, 进去搜索自己的位置即可获取经纬度
-
acc
- 海拔高度- 随便写个数字即可, 这里不用管
-
cookie
- 从浏览器中获取的cookie
信息,用于模拟登录状态- 方法1:使用抓包工具获取
- 方法2:使用浏览器开发者工具(F12)查看
cookie
信息, 复制cookie
信息
-
QmsgKEY
- Qmsg 服务的消息推送密钥,用于发送QQ成功签到通知- Qmsg 官网注册账号即可获取 Qmsg官网, 教程在官网自行查询
- 如果你使用的是特殊网络下的主机遇到Qmsg发送不了的错误,比如
10054远程主机关闭了连接
之类的,按照给出的网址修改DNS
进行改进(至少我改过之后就不报错了)点击链接 - 若修改DNS后依旧无法使用Qmsg,显示错误,比如
远程主机关闭连接
之类的,那么(那么可以将DNS改回来了,说明不是DNS的问题);可能就需要使用代理;- 确保电脑上已经有代理软件(
我使用的是clash,默认的代理端口为7890,那么我的代理就是http://127.0.0.1:7890,不同的软件占用端口视具体情况而定
);在发送消息的代码前加入以下代码:proxy = "http://127.0.0.1:7890" proxies = { "http": proxy, "https": proxy }
- 然后在发送消息的函数
send_qq_message
的post
方法中加入proxies=proxies
即可,如下所示:
response = requests.post(url, data=message , proxies=proxies)
- 确保电脑上已经有代理软件(
-
WXKey
- Server酱-Turbo版 服务的消息推送密钥,用于发送微信成功签到通知- Server酱-Turbo版 官网微信扫码关注公众号获取 Server酱官网, 教程在官网自行查询
- 签到前打开抓包工具
- 进入VX进行签到
- 返回到抓包工具, 过滤(Url关键词或者其他)界面中查找
g8n
找到Post请求, 复制其中的cookie
和classID
;这里的cookie
全部复制就行 - 更详细方法请自行搜索
- 电脑打开微信也可以在网址栏查看
class ID
,F12可以查看发送请求的Cookie
(目前只看到了classID
,Cookie
可以尝试F12
->网络
中进行POST
包的过滤查找,步骤在后面,往下滑查看) - 更详细的使用和安装方法:点击链接
- 这个方法可以在任意时候使用
- 电脑登录微信,点击签到项,使得浏览器打开签到页面
- 按F12打开开发者工具,切换到
网络
(Network
)标签,侧边栏找到一个全是数字的标签,再在打开的页面中点击Cookie, - 直接复制图中淡蓝色选中部分:
- 配置
data.json
文件,确保填入正确的课程信息和其他配置项 - 运行脚本
BJMF.py
:
python BJMF.py
脚本将自动完成签到操作,并在成功签到后发送通知(如果有配置 Qmsg 服务的话)。
- 使用一台常年不关的电脑或者服务器设置定时任务即可自动签到
- 多人签到(√)
- 一检测到新任务就签到( × )
- 画饼:
- 打包成
exe
, 供电脑上没有安装python
环境的电脑签到( × ) - 打包成
app
, 供手机上使用自动任务完成签到( × )
- 打包成