GESP真题下载
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_b89a4d0a/gesp-download 到 AI 助手中。
技能介绍
要解决的问题
GESP官方真题散落在网页中,PDF链接是无意义数字,手动下载后命名混乱,整理成本高。每季度新场次公布后,用户需重新爬取链接、重命名文件,且不同语言、等级、年份的组合让批量下载极易出错。
技能如何工作
核心能力
- 实时爬取官网列表页:脚本直接访问
https://gesp.ccf.org.cn/101/1010/,动态解析HTML,无需硬编码链接,新场次自动出现 - 自动规范命名:从PDF链接的
title属性还原可读名称,格式为GESP {年}年{月:02d}月 {语言} {等级}级 试题,如GESP 2026年03月 C++ 5级 试题.pdf - 灵活筛选机制:支持
--year、--month、--lang、--grade组合筛选,筛选条件为「与」关系 - 可选Markdown转换:下载后可通过
--md转为Markdown,优先使用pymupdf4llm提升排版质量,缺失时回退到PyMuPDF纯文本提取
关键步骤
- 范围判定:将自然语言映射为命令行参数,如
--year 2026 --month 3 --lang cpp --grade 5 - 防呆机制:无筛选条件且未加
--all时,脚本拒绝下载并打印可选项清单,避免误操作 - 执行下载:默认跳过已存在文件(可重复运行),加
--force强制覆盖 - 结果回报:输出下载数量、存储目录,并说明是否完成Markdown转换
容错设计
- 支持两种PDF链接格式:
.pdf直链和cms/api/news/downloadFile?id=接口 - 请求间加入小延迟,避免对官网造成压力
- 若官网HTML结构变化导致解析失败,需更新脚本中的正则表达式
适用边界与注意点
Markdown转换的局限
图形化(Scratch)试卷以图片为主,文本提取有限,转换后的Markdown可能不完整,脚本会在这类文件顶部添加提示,请以PDF原文为准。
筛选条件的精度
筛选是「与」关系,如--lang python --grade 3仅匹配同时满足两个条件的试卷。若用户意图模糊(如“下载GESP真题”),脚本会先执行--list列出可选场次,等待用户确认范围。
官网改版风险
若官方调整页面结构(如更换DOM标签、接口路径),脚本可能无法解析到PDF链接。此时需检查并更新gesp_download.py中的正则表达式,确保兼容新结构。
下载频率控制
虽然无需登录,但请适度使用,避免高频请求对官网造成负担。脚本已在请求间添加延迟,但不建议短时间内大规模下载全部试卷。
使用场景
- 教师备课时需获取2026年3月C++五级真题用于课堂练习,手动下载命名混乱且耗时
- 培训机构整理GESP历年真题库,需按年份、语言、等级批量下载并统一文件命名
- 学生备考2025年Python三级,希望快速获取该场次PDF并转为Markdown方便笔记
- 教研组需整理所有Scratch图形化1-4级真题,手动下载后需统一命名格式
适合人员
- 中小学编程教师:需定期获取GESP真题用于课堂教学和模拟考试
- 教育培训机构教研员:负责整理和维护GESP真题库,支持按条件批量下载
- GESP考生家长:希望为孩子下载对应年份和级别的真题,辅助家庭辅导
- 计算机教育研究者:需收集历年GESP真题进行考试趋势分析和命题研究