# Requirements: kb-skills **Defined:** 2026-03-17 **Core Value:** 可靠、可维护的处理管道 - 每个步骤独立、可验证、可恢复 ## v1.2 Requirements 知乎内容爬取体系的完整实现,解决 Cookie 过期问题,支持自动登录维持。 ### 登录认证 - [x] **AUTH-01**: 用户可通过二维码扫码登录知乎 - [x] **AUTH-02**: 用户可手动设置 Cookie 进行认证 - [x] **AUTH-03**: Cookie 自动持久化到本地文件,下次自动复用 - [x] **AUTH-04**: Cookie 过期时自动检测并提示重新登录 ### 内容爬取 - [x] **CONT-01**: 爬取知乎问答 - 问题标题、问题描述、回答内容、元数据 - [x] **CONT-02**: 爬取知乎专栏/文章 - 标题、正文、元数据 - [x] **CONT-03**: 爬取内容下的评论(可选开关) - [x] **CONT-04**: 提取作者信息、发布时间、点赞数等元数据 ### 网络与反爬 - [x] **NET-01**: 支持代理 IP 配置 - [x] **NET-02**: 请求频率控制,避免触发反爬 - [x] **NET-03**: 自动获取请求签名(x-zse-96),无需手动逆向 ### Pipeline 整合 - [x] **PIPE-01**: 替换现有 ZhihuProcessor,使用新的爬虫实现 - [x] **PIPE-02**: 保持与现有 Pipeline 架构的兼容性 - [x] **PIPE-03**: 支持断点续传和幂等执行 ## v1.1 Requirements (Complete) ### 中间目录 (Intermediate) - [x] **INT-01**: 中间目录统一到 `~/work/intermediate/analysis/` - [x] **INT-02**: 内容目录命名保持 `{platform}_{content_id}/` 格式 - [x] **INT-03**: 配置文件支持自定义中间目录路径 ### 归档步骤 (Archive) - [x] **ARC-01**: 添加 ArchiveProcessor 作为管道最后一步 - [x] **ARC-02**: 分析完成后自动归档到最终目录 - [x] **ARC-03**: 归档只复制 md 文件到最终目录 - [x] **ARC-04**: 归档后可选清理中间文件 ### 最终目录结构 (Output) - [x] **OUT-01**: 最终目录按平台分目录 (bilibili/, zhihu/) - [x] **OUT-02**: 不再按时间创建归档目录 - [x] **OUT-03**: 文件前缀加时间戳 `{timestamp}_{content_id}_analysis.md` - [x] **OUT-04**: 只保留 md 文件,不归档 json 文件 ### 代码整合 - 元数据 (Metadata Integration) - [x] **MET-01**: kb-bilibili-metadata 整合进 kb-workflow/metadata/ - [x] **MET-02**: kb-zhihu-metadata 整合进 kb-workflow/metadata/ - [x] **MET-03**: 删除独立的 kb-bilibili-metadata 目录 - [x] **MET-04**: 删除独立的 kb-zhihu-metadata 目录 - [x] **MET-05**: 更新所有导入路径指向新位置 ### 代码整合 - Pipeline (Pipeline Integration) - [x] **PIP-01**: kb_pipeline/ 合并进 kb-workflow/ - [x] **PIP-02**: 保持 processors/, platforms/, schemas.py, state.py, config.py 结构 - [x] **PIP-03**: 删除独立的 kb_pipeline 目录 - [x] **PIP-04**: 更新 CLI 入口导入路径 ## v1.3 Requirements (Current) 反爬虫优化,增强爬虫反检测能力,降低被封风险,提升爬取稳定性。 ### Proxy Pool (代理池管理) - [x] **PROXY-01**: 用户可以配置代理池 — 支持从文件或环境变量加载多个代理地址 - [x] **PROXY-02**: 系统自动轮换代理 — 每次请求自动选择下一个可用代理 - [ ] **PROXY-03**: 代理健康检查 — 检测代理可用性,自动移除失效代理 - [ ] **PROXY-04**: 代理失败回退 — 当前代理失败时自动切换到下一个代理 ### Behavior Camouflage (请求行为伪装) - [ ] **BEHAV-01**: 随机请求延迟 — 请求间隔在可配置范围内随机化(默认 1-5 秒) - [ ] **BEHAV-02**: User-Agent 轮换 — 每次请求使用不同的真实浏览器 UA - [ ] **BEHAV-03**: 请求头随机化 — Accept-Language、Accept-Encoding 等头部随机化 - [ ] **BEHAV-04**: 模拟人类浏览模式 — 支持页面滚动、鼠标移动等行为模拟(Playwright) ### CAPTCHA Detection (验证码检测) - [ ] **CAPT-01**: 验证码页面检测 — 自动检测知乎/B站验证码页面 - [ ] **CAPT-02**: 验证码触发告警 — 检测到验证码时记录日志并暂停爬取 - [ ] **CAPT-03**: 验证码状态恢复 — 支持手动处理后继续爬取 ### Error Recovery (错误恢复机制) - [ ] **ERR-01**: 智能重试策略 — 根据错误类型选择不同的重试策略(403/429/超时) - [ ] **ERR-02**: 指数退避 + 抖动 — 重试间隔使用指数退避并添加随机抖动 - [ ] **ERR-03**: 错误分类处理 — 区分临时错误和永久错误,避免无效重试 - [ ] **ERR-04**: 断点续传增强 — 记录失败位置,支持从失败点恢复 ### Platform Adaptation (平台适配) - [ ] **PLAT-01**: 知乎反爬适配 — 针对知乎的反爬策略优化(登录态检测、请求频率限制) - [ ] **PLAT-02**: B站反爬适配 — 针对 B站的反爬策略优化(视频/专栏元数据获取) ## v2 Requirements (Deferred) 推迟到后续版本的需求。 ### 扩展爬取 - **EXT-01**: 问题下所有回答 - 爬取问题的所有热门回答(非单页) - **EXT-02**: 作者全部内容 - 爬取某作者的所有文章/回答 - **EXT-03**: 知乎视频 - 爬取知乎视频内容 ### 高级功能 - **ADV-01**: 进度可见性 — 实时显示工作流执行进度 - **ADV-02**: 并行步骤执行 — 支持独立步骤的并行执行 - **ADV-03**: 说话者分离默认启用 — HF_TOKEN 配置后自动使用 - **ADV-04**: 微信公众号处理 — 支持微信公众号文章 ## Out of Scope 明确排除的功能范围。 | Feature | Reason | |---------|--------| | 知乎会员付费内容 | 不爬取付费内容,合规考虑 | | 知乎视频 | v1.2 不支持,推迟到后续版本 | | 大规模爬取 | 仅用于个人知识库,不对平台造成负担 | | 付费打码服务 | 使用二维码登录替代,免费方案 | | 实时/流式处理 | 批量处理即可 | | 并发限制 | 不需要限制并发数量 | | 用户界面 | 命令行运行 | | 多语言支持 | 中文即可 | | 小红书 | 当前不支持 | ## Traceability 需求与路线图的映射关系。 ### v1.2 Traceability | Requirement | Phase | Status | |-------------|-------|--------| | AUTH-01 | Phase 7 | Complete | | AUTH-02 | Phase 7 | Complete | | AUTH-03 | Phase 7 | Complete | | AUTH-04 | Phase 7 | Complete | | CONT-01 | Phase 8 | Complete | | CONT-02 | Phase 8 | Complete | | CONT-03 | Phase 8 | Complete | | CONT-04 | Phase 8 | Complete | | NET-01 | Phase 8 | Complete | | NET-02 | Phase 8 | Complete | | NET-03 | Phase 8 | Complete | | PIPE-01 | Phase 9 | Complete | | PIPE-02 | Phase 9 | Complete | | PIPE-03 | Phase 9 | Complete | **v1.2 Coverage:** - Requirements: 14 total - Mapped to phases: 14 - Unmapped: 0 ✓ ### v1.1 Traceability (Complete) | Requirement | Phase | Status | |-------------|-------|--------| | INT-01 | Phase 5 | Complete | | INT-02 | Phase 5 | Complete | | INT-03 | Phase 5 | Complete | | ARC-01 | Phase 5 | Complete | | ARC-02 | Phase 5 | Complete | | ARC-03 | Phase 5 | Complete | | ARC-04 | Phase 5 | Complete | | OUT-01 | Phase 5 | Complete | | OUT-02 | Phase 5 | Complete | | OUT-03 | Phase 5 | Complete | | OUT-04 | Phase 5 | Complete | | MET-01 | Phase 6 | Complete | | MET-02 | Phase 6 | Complete | | MET-03 | Phase 6 | Complete | | MET-04 | Phase 6 | Complete | | MET-05 | Phase 6 | Complete | | PIP-01 | Phase 6 | Complete | | PIP-02 | Phase 6 | Complete | | PIP-03 | Phase 6 | Complete | | PIP-04 | Phase 6 | Complete | --- *Requirements defined: 2026-03-17* *Last updated: 2026-03-18 after v1.3 requirements added* ### v1.3 Traceability | Requirement | Phase | Status | |-------------|-------|--------| | PROXY-01 | Phase 10 | Complete | | PROXY-02 | Phase 10 | Complete | | PROXY-03 | Phase 10 | Pending | | PROXY-04 | Phase 10 | Pending | | BEHAV-01 | Phase 11 | Pending | | BEHAV-02 | Phase 11 | Pending | | BEHAV-03 | Phase 11 | Pending | | BEHAV-04 | Phase 11 | Pending | | CAPT-01 | Phase 12 | Pending | | CAPT-02 | Phase 12 | Pending | | CAPT-03 | Phase 12 | Pending | | ERR-01 | Phase 13 | Pending | | ERR-02 | Phase 13 | Pending | | ERR-03 | Phase 13 | Pending | | ERR-04 | Phase 13 | Pending | | PLAT-01 | Phase 14 | Pending | | PLAT-02 | Phase 14 | Pending | **v1.3 Coverage:** - Requirements: 17 total - Mapped to phases: 17 - Unmapped: 0 ✓