GESP真题下载工具使用教程

写在前面

作为信息学竞赛和编程认证领域的常客,GESP(Grade Examination of Software Programming)真题是备考过程中不可或缺的资料。但官网的真题分散在不同页面,手动下载整理非常耗时。今天分享一个Python工具,可以自动抓取GESP官网的真题列表,按时间范围筛选,并自动分类下载PDF文件。
先看效果:运行脚本后,输入数字选择范围,工具会自动解析页面、提取下载链接、按年份月份和编程语言分类保存。

工具特点

自动抓取:遍历官网分页,获取全部真题列表
智能筛选:支持查看最新真题、近一年真题或全部真题
自动分类:按C++、Python、图形化编程分类保存
本地缓存:真题列表保存为JSON,避免重复请求
彩色输出:终端显示更清晰

环境准备

1. 安装Python

确保你的电脑已安装Python 3.6或更高版本。在终端输入:

bash
python3 --version

如果没有安装,请前往python.org下载安装。

2. 安装依赖库

本工具需要requests和beautifulsoup4两个库。在终端执行:

bash
pip3 install requests beautifulsoup4

也可使用清华镜像加速:

bash
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple requests beautifulsoup4

3. 创建项目目录

bash
mkdir -p ~/Downloads/GESP
cd ~/Downloads/GESP

4. 创建工具文件

新建一个文本文件,命名为gesp.py,代码太多,可以前往文末下载。

5. 运行工具

在终端中进入项目目录,执行。
打开终端 / 命令行,切换到gesp.py所在的目录(比如下载到了 Downloads/GESP 文件夹)

bash
cd /Users/你的用户名/Downloads/GESP

执行脚本:

bash
python3 gesp.py

或者直接执行组合的代码:

bash
cd /Users/你的用户名/Downloads/GESP && python3 gesp.py

然后就会进行交互

text
正在检查真题列表...
正在加载页面: https://gesp.ccf.org.cn/101/1010/index.html
本页发现 10 条真题记录
正在加载页面: https://gesp.ccf.org.cn/101/1010/index_2.html
本页发现 4 条真题记录
检查完毕,共发现 14 条真题记录

交互流程

1. 选择时间范围

text

============================================================
GESP真题下载工具
============================================================
请选择要查看的真题范围:
1. 显示最新真题(最近一次发布)
2. 显示最近一年真题
3. 显示全部真题
0. 退出
============================================================
请输入对应数字:

2. 选择要下载的真题

输入数字后,工具会列出符合条件的真题。例如选择3(全部真题):

text

============================================================
真题列表
============================================================
1. 2026年3月GESP认证真题 2026-03-15 GESP2026年3月认证真题
日期: 2026-03-15
链接: https://gesp.ccf.org.cn/101/1010/10269.html
2. 2025年12月GESP认证真题 2025-12-29 GESP2025年12月认证真题
日期: 2025-12-29
链接: https://gesp.ccf.org.cn/101/1010/10242.html
3. 2025年9月GESP认证真题 2025-09-30 GESP2025年9月认证真题
日期: 2025-09-30
链接: https://gesp.ccf.org.cn/101/1010/10229.html
4. 2025年6月GESP认证真题 2025-06-29 GESP2025年6月认证真题
日期: 2025-06-29
链接: https://gesp.ccf.org.cn/101/1010/10217.html
......
============================================================
请输入要下载的真题序号 (0 退出):

3.确认下载

输入序号后,工具会解析详情页并显示找到的PDF文件。例如输入 1

text
正在解析真题详情页: https://gesp.ccf.org.cn/101/1010/10269.html
发现 18 个PDF文件
确认开始下载全部PDF文件?(y/n):

输入y开始下载。

text
开始下载全部PDF文件...
下载: CCF GESP 2026年3月认证 图形化编程 1级试题
保存到: /Users/alexwang/Downloads/GESP/GESP真题/2026_03/图形化编程/2026_03_图形化编程_1级.pdf
文件大小: 1.41 MB
下载进度: 100.0%
========================================
下载完成!
========================================
下载: CCF GESP 2026年3月认证 图形化编程 2级试题
保存到: /Users/alexwang/Downloads/GESP/GESP真题/2026_03/图形化编程/2026_03_图形化编程_2级.pdf
文件大小: 0.99 MB
下载进度: 100.0%
========================================
下载完成!
========================================
......
============================================================
下载完成
成功: 18 个
失败: 0 个
文件保存位置: /Users/你的用户名/Downloads/GESP/GESP真题
============================================================
是否继续操作?(y/n):

目录结构示例

text
GESP/
├── GESP真题/
│ └── 2026_03/
│ ├── 图形化编程/
│ │ ├── 2026_03_图形化编程_1级.pdf
│ │ ├── 2026_03_图形化编程_2级.pdf
│ │ ├── 2026_03_图形化编程_3级.pdf
│ │ └── 2026_03_图形化编程_4级.pdf
│ │
│ ├── C++/
│ │ ├── 2026_03_C++_1级.pdf
│ │ ├── 2026_03_C++_2级.pdf
│ │ ├── 2026_03_C++_3级.pdf
│ │ ├── 2026_03_C++_4级.pdf
│ │ ├── 2026_03_C++_5级.pdf
│ │ ├── 2026_03_C++_6级.pdf
│ │ ├── 2026_03_C++_7级.pdf
│ │ └── 2026_03_C++_1级.pdf
│ │
│ └── Python/
│ ├── 2026_03_Python_1级
│ ├── 2026_03_Python_2级
│ ├── 2026_03_Python_3级
│ ├── 2026_03_Python_4级
│ ├── 2026_03_Python_5级
│ └── 2026_03_Python_6级

├── gesp.py # 主程序

└── gesp_data.json # 真题列表缓存

常见问题

Q1: 运行时报错“No module named ‘requests’”
说明没有安装依赖库。执行:

bash
pip3 install requests beautifulsoup4

Q2: 下载速度很慢或失败
检查网络连接,或者手动将代码中的超时时间调大(timeout=60改为timeout=120)
Q3: 有些真题页面找不到PDF
GESP官网的部分旧真题可能只提供在线浏览而非PDF下载,工具会正常提示“未找到PDF文件链接”。
Q4: 如何更新已下载的真题列表?
直接重新运行脚本即可。工具会重新抓取官网并更新本地缓存文件gesp_data.json
Q5: 文件名乱码怎么办?
代码中已经对文件名做了清理和编码处理(sanitize_filename函数)。如果仍然出现乱码,检查终端的字符编码设置,或改用支持UTF-8的终端(如Windows Terminal、iTerm2)。

最后

最近折腾了一个oj插件,题库严重缺题,用这个来应应急还是不错的。

通用 Python版本 8kb 下载1
那年 • 今日
老王于2026-04-20 18:51发布在好好学习, 编程
楚客追梦情难休,万里追寻志未酬。

赞助 点赞 0

暂无评论

头像预览

发表评论

您的邮箱地址不会被公开, 必填项已用 * 标注

找回密码

请输入您的邮箱地址,我们将向您发送重置密码的链接。

您好,朋友!

请输入相关信息,以便我们提供更优质的服务!

欢迎回来!