文章目录
- 1、引言
- 2、痛点
- 3、解决方法
🍃作者介绍:双非本科大四网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发,目前开始人工智能领域相关知识的学习
🦅个人主页:@逐梦苍穹
✈ 您的一键三连,是我创作的最大动力🌹
1、引言
去年我有一篇文章分享过执教云的课件下载方式,感兴趣也可以去看看:https://xzl-tech.blog.csdn.net/article/details/135177141
今天聊聊新版智慧职教的课件怎么下载(zjy2域名开头的):
2、痛点
看一下课件的效果:
可以看到课件是图片形式的,没有下载链接,而且我也尝试了油猴脚本,对这个版本的执教云并没有用:
那么既想要获得课件,又不想花钱,该怎么办呢?
3、解决方法
先说结论:
智慧职教的服务器后台是有把这个文件的PDF格式传过来的,获取PDF文件即可
下面带大家看一下我寻找PDF地址的心路历程。
首先按下F12,然后刷新当前课件页面进行抓包:
内容非常的多!那么如何入手呢?
先看一下显示出来的格式是不是图片,点击"图像":
一共是12张图片,符合预期。
随便点开一个看一下:
看到请求路径里面的上一级目录是包含了某个PDF文件的,那么下一步的人物就是找到这个PDF文件:
访问一下图片里面的路径看一下:
图片可以访问,那上一级的PDF呢?
没有什么有用的信息。
下面就该查一下Ajax请求了,看一下有没有这个文件,这个文件既然存在,就应该还有别的链接是可以访问的。
这几个请求比较“可疑”:
如果你运气好的话一下子就能发现,但是我最先点的是:
复制地址访问一下:
写段代码伪造一下(请求头内容去浏览器抓包复制就行):
# -*- coding: utf-8 -*-
# @Author:︶ㄣ释然
# @Time: 2024/9/9 20:43
import requests
# 请求的 URL
url = "https://zjy2.icve.com.cn/prod-api/spoc/oss/getUrlPngs"
# 请求头信息
headers = {
"Host": "zjy2.icve.com.cn",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:129.0) Gecko/20100101 Firefox/129.0",
"Accept": "application/json, text/plain, */*",
"Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
"Accept-Encoding": "gzip, deflate, br, zstd",
"Content-Type": "application/json;charset=utf-8",
"Authorization": "Bearer eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoiNDAyODgzZTU4MmQwNWI0YjAxODJkMzZkMmVjZjcwOGEiLCJ1c2VyX2tleSI6ImMxN2EyZGVkLWU3NjQtNGNkNC1iYTIyLTBlMzRhMzNiMjI2NSIsInVzZXJuYW1lIjoic3p4eDIxMDkwNTkzNDIifQ.bBKJoSoCWkFsEvkoAU_jl0MoLtQjltCWv764_n9WTz23Y2S9BQN_XpmEIOvPjr7S6Yo3kNcRtTiEeEdUSji7zw",
"Connection": "keep-alive",
"Cookie": "Token=eyJhbGciOiJIUzUxMiJ9.eyJ1c2VyX2lkIjoiNDAyODgzZTU4MmQwNWI0YjAxODJkMzZkMmVjZjcwOGEiLCJ1c2VyX2tleSI6ImMxN2EyZGVkLWU3NjQtNGNkNC1iYTIyLTBlMzRhMzNiMjI2NSIsInVzZXJuYW1lIjoic3p4eDIxMDkwNTkzNDIifQ.bBKJoSoCWkFsEvkoAU_jl0MoLtQjltCWv764_n9WTz23Y2S9BQN_XpmEIOvPjr7S6Yo3kNcRtTiEeEdUSji7zw; Admin-Expires-In=10080; AiToken=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpblR5cGUiOiJsb2dpbiIsImxvZ2luSWQiOiIxOjQwMjg4M2U1ODJkMDViNGIwMTgyZDM2ZDJlY2Y3MDhhIiwicm5TdHIiOiJJRWVHS2duZDBPaWtUSGRFdGRienMyWkJJZ2J4T2JjeCIsInVzZXJJZCI6IjQwMjg4M2U1ODJkMDViNGIwMTgyZDM2ZDJlY2Y3MDhhIn0.m5-X_8M7YXmJBM2SkJMzXsw9dTonqQ3jN_q3iYsAv6I; acw_tc=0a47318e17258847082455665e004c7f6579aae5258199e64dffda414a5e14; token=5faa528f-a4b7-418f-b9d7-2bec91733a35",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin"
}
# 请求参数
params = {
"fileUrl": "doc%2Fg%4098D5C321C3269CBB99929938E541CA12.pdf"
}
# 发送 GET 请求
response = requests.get(url, headers=headers, params=params)
# 检查请求是否成功
if response.status_code == 200:
# 打印返回的 JSON 数据
print(response.json())
else:
print(f"请求失败,状态码: {response.status_code}")
结果:
本来不应该进行这步操作的,是我走了弯路,我没看“响应”:
这个请求明显是返回图片的,这不是我要的。
然后我尝试了下一个“可疑请求”(这是“正确答案”):
这次吸取教训看一下“响应”:
这个就是我要的URL了,访问一下:
没有问题,点击右上角就可以保存文件了,本文也到此结束了🌹