关于 LeetCode Crawler
LeetCode Crawler 抓取带公司标签的面试讨论,对帖子分类并去重,还可用 Claude AI 提取结构化面试信息。它通过命令行、CSV 输出和 MCP 工具服务于开发者及面试研究者。
主要功能
- 01按公司标签抓取讨论
- 02对帖子分类并去重
- 03按时间范围和类别筛选
- 04用 Claude AI 提取面试字段
- 05将结果保存为 CSV
- 06提供四种 MCP 工具
适用场景
- 01查看目标公司的面试经历
- 02找出讨论频繁的 LeetCode 题目
- 03获取讨论串或刷新缓存结果
MCP 相关
MCP 服务通过 stdio 暴露四种工具,用于搜索缓存讨论、统计热门题目、获取讨论串和刷新缓存。该服务面向 Claude Desktop 和 Claude Code。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LeetCode 讨论爬虫 + MCP 服务
爬取 LeetCode 面试讨论论坛,使用 Claude AI 提取结构化信息, 并将数据作为 MCP(Model Context Protocol)服务提供给 Claude Desktop 和 Claude Code 使用。
功能
- 按公司标签(google、meta、amazon 等)筛选并爬取 LeetCode 讨论论坛
- 按类型分类帖子(
leetcode、discuss_link、discussion) - 跨页面按帖子标题和公司对讨论进行分组和去重
- 可选使用 AI 为帖子补充提取字段:
problem_name、leetcode_url、interview_stage、difficulty、reported_outcome - 保存为 CSV(按公司缓存或按月输出)
- 通过 stdio MCP 传输提供 4 个工具,供 Claude Desktop / Claude Code 使用
安装
git clone https://github.com/louisfghbvc/mcp-leetcode-crawler.git
cd mcp-leetcode-crawler
pip install -r requirements.txt
使用方法
命令行界面
# Crawl 10 pages of Google interview discussions
python cli.py --company google --pages 10
# Filter to posts from the last 30 days
python cli.py --company google --pages 10 --since 30d
# Crawl and enrich with AI extraction (requires ANTHROPIC_API_KEY)
python cli.py --company google --pages 10 --enrich
# Other companies
python cli.py --company meta --pages 5 --since 7d
可用的命令行选项:
--company:公司标签(默认:google)--pages:要爬取的页数,每页 15 篇帖子(默认:10)--output:输出 CSV 路径(默认:leetcode_interview_questions.csv)--output-dir:按月生成的 CSV 文件目录(默认:output)--since:时间范围筛选器——Nd(天)或Nw(周),例如--since 14d--enrich:使用 AI 从每篇帖子中提取结构化字段(需要ANTHROPIC_API_KEY)--verbose:调试日志--category:讨论类别(默认:interview-question)
MCP 服务
在 Claude Desktop 或 Claude Code 中注册:
# Run directly
python mcp_server.py
# Or register with Claude Desktop
mcp install mcp_server.py
该服务提供 4 个工具:
| 工具 | 描述 |
|---|---|
search_discussions(company, days) | 按公司和时间范围筛选缓存的帖子 |
get_hot_problems(company, limit) | 按讨论频率排序的热门 LeetCode 题目 |
get_thread(post_id) | 实时获取单个讨论串(不使用缓存) |
refresh(company, num_pages, days, enrich) | 爬取并重建磁盘缓存 |
缓存位于 ./cache/{company}_questions.csv。使用 search_discussions 或
get_hot_problems 前,先运行一次 refresh 填充缓存。
AI 信息补全
使用 --enrich(命令行界面)或 enrich=True(MCP refresh)时,每篇帖子都会新增 5 个字段:
| 字段 | 值 |
|---|---|
problem_name | LeetCode 题目名称,或 null |
leetcode_url | 完整题目 URL,或 null |
interview_stage | phone screen / online assessment / onsite / final round / null |
difficulty | easy / medium / hard / null |
reported_outcome | passed / failed / no mention / null(null = 提取失败,将重试) |
费用:使用 claude-haiku-4-5-20251001 时,每篇帖子约 $0.001。重新运行时会跳过已完成信息补全的帖子。
项目结构
mcp-leetcode-crawler/
├── crawler.py # Core crawler: fetch, deduplicate, filter, classify posts
├── extractor.py # AI extraction layer: Claude Haiku → structured fields
├── mcp_server.py # MCP server: 4 tools over stdio transport
├── cli.py # Command-line interface
├── requirements.txt # Python dependencies
├── test_crawler.py # Crawler unit tests
├── test_mcp_server.py # MCP server unit tests (22 tests)
├── test_extractor.py # Extractor unit tests (12 tests)
├── test_cli.py # CLI integration tests (2 tests)
└── cache/ # Per-company CSV cache (git-ignored)
要求
- Python 3.12+
ANTHROPIC_API_KEY环境变量(仅用于--enrich)
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。