| name | interview-prep |
| description | 根据关键词搜索面经并抓取内容。支持"智能模式"(分析高频考点)和"批量模式"(仅抓取内容以节省 token)。支持多种导出格式(Markdown/JSON/CSV)。当用户请求面试资料或面经时调用。正常情况下,使用批量模式。 |
| allowed-tools | Bash, Read |
面试准备助手(优化版)
核心模式
本技能支持两种工作模式,根据用户的意图自动选择或由用户指定:
- 智能模式 (Smart Mode):搜索 -> 筛选 -> 抓取 -> 深度分析。适用于需要快速了解面试重点的场景。
- 批量模式 (Batch Mode):搜索 -> 批量抓取 -> 直接导出。适用于需要保存大量面经原文供后续阅读,且不希望消耗过多分析 Token 的场景。
新增功能 (v2.0)
反爬虫增强
- ✅ 随机延迟:每次请求间隔 2-5 秒随机延迟
- ✅ 请求头轮换:5 种不同 User-Agent 随机切换
- ✅ 重试机制:失败自动重试(默认 3 次)
- ✅ 日志记录:完善的日志系统,方便调试
用户体验提升
- ✅ 断点续传:支持中断后继续,不会重复抓取
- ✅ 多格式导出:支持 Markdown、JSON、CSV 三种格式
- ✅ 进度追踪:实时显示抓取进度和统计信息
- ✅ 配置文件:支持
config.json 自定义配置
执行步骤
1. 智能模式
当用户请求"分析"、"总结"或"提取重点"时使用。
- 搜索:
python skills/interviewer/scripts/search.py -k "$ARGUMENTS" -p 1 -o search_results.md
- 筛选:读取
search_results.md,选择 5-10 个 最相关的链接。
- 抓取:将选中的链接写入临时文件,运行
python skills/interviewer/scripts/scraper.py -i temp_links.md -o temp_posts.md
- 分析:读取
temp_posts.md,总结高频考点、具体问题和难度。
2. 批量模式 (默认)
当用户提到"批量"、"只抓取"、"不分析"或"节省 Token"时使用。
- 搜索:
python skills/interviewer/scripts/search.py -k "$ARGUMENTS" -p 2 -o search_results.md
- 抓取:直接对所有结果运行抓取:
python skills/interviewer/scripts/scraper.py -i search_results.md -o interview_posts.md。
- 完成:告知用户所有面经已保存至
interview_posts.md,不对内容进行任何总结或分析。
高级用法
搜索脚本 (search.py)
python search.py -k "Java 面经" -p 2 -o results.md
python search.py -k "Python" -p 1 -o results.json --format json
python search.py -k "C++ 面试" -p 3 -o results.csv --format csv
python search.py -k "Go" -o results.md --no-log
参数说明:
-k, --keywords: 搜索关键词(支持多个)
-p, --pages: 搜索页数(默认 1)
-o, --output: 输出文件路径
--format: 输出格式 (md/json/csv,默认 md)
--no-log: 禁用日志文件
抓取脚本 (scraper.py)
python scraper.py -i urls.md -o results.md -t 10
python scraper.py -i urls.md -o results.json --format json
python scraper.py -i urls.md -o results.csv --format csv
python scraper.py -i urls.md -o results.md --retry 5
python scraper.py -i urls.md -o results.md --clear-cache
参数说明:
-i, --input: 输入文件路径(支持 .md 和 .txt)
-o, --output: 输出文件路径
-t, --threads: 并发线程数(默认 10)
--format: 输出格式 (md/json/csv,默认 md)
--retry: 失败重试次数(默认 3)
--clear-cache: 清空缓存重新开始
--no-log: 禁用日志文件
配置文件 (config.json)
在 scripts/config.json 中可以自定义以下配置:
{
"search": {
"default_pages": 2,
"default_format": "md",
"delay_min": 2,
"delay_max": 5,
"timeout": 15
},
"scraper": {
"default_threads": 10,
"default_format": "md",
"default_retry": 3,
"timeout": 20
}
}
注意事项
依赖安装
首次使用前,请确保安装所需依赖:
pip install -r skills/interviewer/scripts/requirements.txt
依赖列表
- requests >= 2.31.0
- beautifulsoup4 >= 4.12.0
- lxml >= 4.9.0
- tqdm >= 4.65.0
- chardet >= 5.0.0
反爬虫建议
- 避免短时间内频繁请求,脚本已内置随机延迟
- 如果遇到验证码,可以等待一段时间后再试
- 不要同时运行多个实例,否则可能被封 IP
断点续传
- Scraper 会自动缓存已完成的 URL
- 中断后重新运行,会自动跳过已完成的链接
- 使用
--clear-cache 可以清空缓存重新开始
清理中间文件
任务完成后,可以询问用户是否需要删除生成的中间 Markdown 文件:
search_results.md / urls.md(搜索结果)
temp_links.md(临时链接文件)
.scraper_cache.pkl(断点续传缓存)
search.log / scraper.log(日志文件)
故障排查
问题 1: 未找到任何结果
- 检查关键词是否正确
- 尝试减少搜索页数
- 查看日志文件了解详细错误
问题 2: 大量请求失败
- 检查网络连接
- 可能遇到反爬验证,等待一段时间后再试
- 减少
--threads 参数值
问题 3: 编码错误
- 脚本已自动处理编码问题
- 如果仍有问题,请查看日志文件
更新日志
v2.0 (2025-01-24)
- ✅ 添加随机延迟和请求头轮换
- ✅ 完善日志记录系统
- ✅ 添加重试机制
- ✅ 支持断点续传
- ✅ 支持多种导出格式(MD/JSON/CSV)
- ✅ 添加配置文件支持
- ✅ 优化错误处理和 URL 验证
- ✅ 补全依赖列表
v1.0 (初始版本)