分析浏览器网络请求
登陆后, 进入课程学习页面,通过抓包或者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