248a1f2b8c
- Integrated ZhihuCrawler into ZhihuAdapter - Added comment crawling and formatting - Implemented cookie auto-login flow - Added idempotent execution via IdempotencyChecker Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
162 lines
5.4 KiB
Markdown
162 lines
5.4 KiB
Markdown
# 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 入口导入路径
|
|
|
|
## 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-17 after v1.2 roadmap created*
|