从 Google 搜索并下载 .edu.cn 域名下的习题类 PDF,通过 AI 自动分类。
Google 搜索接口逆向工程:成功逆向 Google 的搜索接口,突破了传统爬虫的限制,实现了大规模、长期稳定的教育类资源爬取。
大规模数据汇聚:通过自动化爬虫和 AI 分类,已成功获取和整理了数千份用于预训练和后训练的教育类 PDF 资源,包括习题、试卷、课本等高价值数据。
智能分类筛选:集成 AI 模型(支持 Gemini/Claude 等),自动识别并过滤教育类文档,确保数据集的质量和一致性。
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
playwright install chromium编辑 config.yaml:
search.query: 搜索关键词(默认"习题" site:edu.cn filetype:pdf)search.max_pages: 最大翻页数download.concurrency: 并发下载数ai.api_key: 设为sk-xxx或使用环境变量${AIHUBMIX_API_KEY}
export AIHUBMIX_API_KEY="sk-your-key-here"
python3 -m src.main config.yaml浏览器会打开并执行搜索,遇到验证码时请在浏览器中手动完成,然后回到终端按 Enter 继续。
data/pdfs/— 下载的原始 PDF(按域名分目录)data/kept/— AI 分类为习题相关的 PDFdata/rejected/— AI 分类为非习题的 PDFdata/crawler.db— SQLite 状态数据库output/report.json— 运行结果汇总
AI 会将 PDF 分为以下类别:
| 分类 | 说明 | 保留 |
|---|---|---|
exercise |
零散的课后练习题 | ✅ |
exercise_collection |
习题集/题库 | ✅ |
exam |
试卷 | ✅ |
textbook_with_exercises |
课本带习题 | ✅ |
syllabus |
教学大纲 | ❌ |
announcement |
通知/公告 | ❌ |
answer_key |
纯答案 | ❌ |
advertisement |
广告 | ❌ |
other |
其他 | ❌ |
python3 -m pytest tests/ -v