分析浏览器网络请求

登陆后, 进入课程学习页面,通过抓包或者F12 查看网站的连接情况, 这里以 学起plus 举例

进入课程学习页面, 按 F12观察网络情况, 在不播放的情况下,浏览器会自动请求,找到两个请求如图

可以看到请求为POST,

每隔30秒会发送一个30秒的时间到服务器

根据请求编写python脚本

左侧框内为课程相关的信息和token/cookies之类信息,根据实际情况取用

所有我们需要模拟浏览器的请求, 因为学习的课程比较少,就4个,就用简单的方式去实现,重复给我发这个请求

下面使用python来实现

import requests
import time

# 通用的请求头部分,对所有请求相同
headers = {
    "Host": "网站域名,例如 xxx.xxx.net",
    "Cookie": ".CHINAEDUCLOUD=coookis根据实际情况填写",
    "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36",
    "Eduuid": "根据实际情况填写",
    "Content-Type": "application/json",
    "Accept-Encoding": "gzip, deflate",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Connection": "close",
}

# 不同请求的数据配置
requests_configs = [
    {
        "edurefurl": "https://aaa.bbb.net/student/videolearning.html#Subpage/StudentVersionVideo?courseVersionId=aaaaaaaaaaaaaaaa&teachplanCourseVersionId=dddddddddddd&sign=eeeeeeeeeeeeee&userAccountId=fffffffffffffffff",
        "edutoken": "xxxxx",
        "edusign": "hhhhhhhhhhhhhhhhhhh",
        "data": {
            "courseVersionId": "aaaaaaaaaaaaaaaa",
            "studyDuration": 30,
            "token": "bbbbbbbbbbbbbbbb|cccccccccccccccc",
        },
    },

	{
		#这里添加其他课程信息
	},
]

def send_request(config):
    # 构建请求头部,加入特定的字段
    specific_headers = {
        "Edurefurl": config["edurefurl"],
        "Edutoken": config["edutoken"],
        "Edusign": config["edusign"],
    }
    combined_headers = {**headers, **specific_headers}
    
    # 发送请求
    response = requests.post(
        url="https://aaa.bbb.net/student/student/coursestudyrecord/adddurationpc",
        headers=combined_headers,
        json={"data": config["data"]},
    )
    return response

# 每30秒循环发送请求
while True:
    for config in requests_configs:
        response = send_request(config)
        print(f"Response Status: {response.status_code}, Response Text: {response.text}")
    time.sleep(30)

运行程序

python main.py 

查看结果

制作docker镜像

如此,就在自动刷课了, 难道一直开着电脑 ,NO

制作成DOCKER镜像, 然后随便丢一台一直开机的服务器跑即可

dockerfile 文件

#Dockerfile
FROM python:3.10.14-bookworm
WORKDIR /app
COPY main.py /app/
COPY requirements.txt /app/
RUN pip install requests 
CMD ["python","-u", "main.py"]

制作镜像

docker build -t tag标签 .
docker push tag

使用镜像

docker run -d --name shuake tag标签

查看日志

docker logs -f shuake