|
|
|
@ -0,0 +1,56 @@
|
|
|
|
|
# 安全微伴自动学习程序
|
|
|
|
|
|
|
|
|
|
## 声明
|
|
|
|
|
1. 本项目基于 @FallenSigh 的 [WeibanTool](https://github.com/FallenSigh/WeibanTool) 项目进行修改适配
|
|
|
|
|
2. 此项目仅供学习交流,本人不对因使用此项目产生的任何后果负责
|
|
|
|
|
|
|
|
|
|
## 实现原理
|
|
|
|
|
1. 使用API抓取课程列表(可得到每门课的课程ID)
|
|
|
|
|
2. 遍历每个课程,使用课程ID请求进入学习接口
|
|
|
|
|
3. 将课程ID上传给验证码接口,获取验证码图像
|
|
|
|
|
4. 将验证码图像显示在屏幕上,供用户点击
|
|
|
|
|
5. 将点击的坐标提交到验证码校验接口,获取methodToken
|
|
|
|
|
6. 使用methodToken请求课程完成接口,完成该课程学习
|
|
|
|
|
7. 重复步骤2-6,直至所有课程学习完成
|
|
|
|
|
|
|
|
|
|
## 使用方法
|
|
|
|
|
|
|
|
|
|
### 0. 安装所需库
|
|
|
|
|
|
|
|
|
|
本项目使用到的库(import语句)已列在下方:
|
|
|
|
|
```
|
|
|
|
|
import datetime
|
|
|
|
|
import json
|
|
|
|
|
import random
|
|
|
|
|
import requests
|
|
|
|
|
import time
|
|
|
|
|
import cv2
|
|
|
|
|
import os
|
|
|
|
|
import json
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 1. 需要抓取的内容
|
|
|
|
|
|
|
|
|
|
访问 [安全微伴网页版](https://weiban.mycourse.cn/) 并登录,使用浏览器的F12开发者工具抓取以下内容
|
|
|
|
|
- X-Token:每次登录的ID,会随登录次数不同而改变,会超时自动过期。可寻找XXX.do请求进行抓取
|
|
|
|
|
- user_id:用户ID,每个人唯一,不会改变
|
|
|
|
|
- user_project_id:当前学习项目的ID,每次任务不同,可直接从地址栏中获得
|
|
|
|
|
- tenant_code:学校ID,每个学校唯一
|
|
|
|
|
|
|
|
|
|
### 2. 将抓取到的内容填入main.py中
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
x_token = ''
|
|
|
|
|
user_id = ''
|
|
|
|
|
user_project_id = ''
|
|
|
|
|
tenant_code = ''
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### 3. 运行main.py,当程序弹出验证码时进行验证。
|
|
|
|
|
|
|
|
|
|
程序提供5次自动验证码重试次数,超过5次会自动终止运行。该次数可在main.py中下面代码处修改
|
|
|
|
|
```
|
|
|
|
|
if (retry_cnt >= 5):
|
|
|
|
|
print('验证码重试次数达到上限,系统自动退出')
|
|
|
|
|
exit(-1)
|
|
|
|
|
```
|