Skip to content

Entropyorder/Exercise-Crawler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PDF Exercise Crawler

从 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 分类为习题相关的 PDF
  • data/rejected/ — AI 分类为非习题的 PDF
  • data/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

About

PDF 习题爬取与分类流水线:Google 搜索 + 异步下载 + AI 学科分类

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors