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 下载3
那年 • 今日
老王于2026-04-20 18:51发布在好好学习, 编程
楚客追梦情难休,万里追寻志未酬。

赞助 点赞 3

胖氪笔记, obaby, XI, acevs, 威言威语等人对本文发表了10条热情洋溢的评论。
  • 胖氪笔记学前班
    5楼

    一遍又一遍的想要学习Python,但都没能坚持下来,到现在还是不会😅

    1. 老王作者

      只要想学习,任何时候都不晚,加油~~

  • python 的确方便

    1. 老王作者

      嗯,小王子学Python时旁听几节课感觉确实很强大很方便 😊

  • 全栈

    1. 老王作者

      可望不可及的存在,小王子还有很长的路要走,目前也只是学了点Python和C++的皮毛。。。

  • 小王子自己会安装?

    1. 老王作者

      安装比较简单,只装一个Python,和安装其它软件差不多,装完后就是命令操作了,yes 或者 no,或者输入数字 。。。。。。
      你也可以下载下来给你家宝练习一下。

  • 老王还是如此的爱学习。

    1. 老王作者

      喜允瞎折腾而已,同时也为了小王子 ::wb:wl::

  • 头像预览

    发表评论

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

    找回密码

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

    您好,朋友!

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

    欢迎回来!