文章目录
- [1. 简介](#1. 简介)
- [2. 问题阐述](#2. 问题阐述)
- [3. 方法演示](#3. 方法演示)
- [4. 如何让这个方法"失效"](#4. 如何让这个方法“失效”)
- [5. 其他优秀方案](#5. 其他优秀方案)
1. 简介
由于我就读西浦的时间是 2022-2026 年,所以该文章会先阐述问题,并介绍问题的发展情况,之后分享我是如何下载试卷的,当然你也可以使用最简单朴素的方法,用截图去将试卷保存下来,但我们这篇文章讨论的主要是如何将试卷更方便地下载下来以使用。
就像刚刚说的现在这个方法在我就读的几个年份是可行的,我会在这篇文章的第四部分介绍学校可以怎么修改从而让我介绍的方法失效,我希望通过这样的方式能够让大家反思,因为这里可以理解为"爬虫与反爬虫的交替演变"。
第五部分我还会介绍同样的一位 22 级学长提供的下载方式,他的方法可以去掉水印,而我介绍的方法不行。
2. 问题阐述
西交利物浦大学提供过往三年的试卷的查阅,根据学校规定,如果题目的选择题是有限题库那可以不公开,而公开的部分呢,又没有提供便携的下载方式,而在就读的 4 年时间中,可能因为 "泄题风波" 或者一些不知名原因,学校对于试卷下载的门槛不断提高,这其实影响了相当一部分同学的备考。
其实在 2024 年之前都是可以使用最简单的"ctrl + s"快捷键下载,没错最开始就是这么简单,感谢之前学姐的分享,很多人可能都没有发现当时可以这么简单地下载试卷。但是似乎在 2025 年的 "泄题风波" 后,这个方法不行了,当时在 Github 上有一些项目。并且纸条上有人分享第二个方法------在控制台中输入 this.PDFViewerApplication.download() 即可。这个方法可以称之为 2.0,它调用 PDF 阅读器自带的下载功能,需要你稍微多几个步骤就能解决。但这个方法后续也被禁止了,但没有关系,下载试卷的方法还是很多的,我这里介绍两种我使用过的方法,截止 2026 年 6 月这些办法依然有效。
3. 方法演示
我们打开想要下载的试卷所在的网页。
然后我们按 F12 就能打开开发者工具,如下图所示。

然后点击下图中红色圈的控制台(Console),打开控制台。

然后在下面的有右箭头的地方的后面输入下面的代码:
bash
window.open(decodeURIComponent(new URL(location.href).searchParams.get("file")), "_blank")
如果代码不能粘贴那就输入 allow pasting,然后回车。

然后按下回车,这样就会弹出新的网页,这个网页还是原来试卷的内容,但是我们可以用最开始的方法 1.0,"ctrl + s"的快捷键将试卷保存下来,如下图所示。

这就是方法 2.1。
4. 如何让这个方法"失效"
这个方法本质上是利用了网页地址里的 file 参数,把真正的 PDF/文件链接单独打开。所以如果用软件工程(CPT304)中介绍的话,这是一种"URL 暴露",真实资源地址被直接暴露在前端 URL 参数里。
所以如果修复这个问题那么方法 2.1 就会失效了。
5. 其他优秀方案
这里再介绍一位 22 级学长的方法,它监听阅读器加载 PDF 的网络请求,然后把下载按钮加到页面上,用户点击按钮后就可以下载去除水印版本的 PDF 试卷。
上面的网站可以直接跳转到 Github 的 Release 界面,具体的操作流程可以参考他仓库里的 README 文件。