This repository has been archived on 2026-08-07. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
kb-skills/.planning/phases/09-pipeline-integration/09-CONTEXT.md
T

101 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phase 9: Pipeline 整合 - Context
**Gathered:** 2026-03-17
**Status:** Ready for planning
<domain>
## Phase Boundary
将新爬虫实现整合进现有 Pipeline 架构,替换原有知乎处理器。
此阶段不涉及新功能开发(Phase 7/8 已完成),只负责整合工作。
</domain>
<decisions>
## Implementation Decisions
### 整合方式
- **策略**: 修改现有 ZhihuAdapter 内部实现,切换到使用 ZhihuCrawler
- **接口保持**: 保持 ZhihuAdapter 的公共接口不变,对 DownloadProcessor 无感知变化
- **实现变更**: fetch_metadata() 和 fetch_content() 内部调用 ZhihuCrawler 而非 ZhihuPlaywrightExtractor
### 评论数据处理
- **默认行为**: 评论爬取默认开启
- **存储方式**: 评论追加到正文末尾(Markdown 格式)
- **数量上限**: 20 条热门评论(使用 hot 排序,API 默认限制)
- **嵌套处理**: 不展开回复的回复,只爬第一层评论(继承自 Phase 8)
### Cookie 过期处理
- **策略**: 自动触发扫码登录
- **流程**: 检测到 Cookie 失效时,调用 ZhihuLogin 触发扫码登录,用户扫码后继续执行
- **用户体验**: 用户会看到二维码提示,扫码后流程自动继续
### 失败降级策略
- **策略**: 直接报错,不降级
- **不降级**: 新爬虫失败时不尝试旧版 ZhihuPlaywrightExtractor
- **错误处理**: 抛出异常,由上层 Pipeline 统一处理错误
### Claude's Discretion
- 评论追加到正文的具体 Markdown 格式(标题、分隔线等)
- 二维码显示的具体实现方式(终端/图片文件)
- 错误提示信息的具体文案
</decisions>
<code_context>
## Existing Code Insights
### Reusable Assets
- `kb_workflow/crawler/zhihu_crawler.py` — ZhihuCrawler 类,已实现问答/专栏/评论爬取
- `kb_workflow/crawler/models.py` — CrawlResult, AnswerData, ArticleData, CommentsResult 数据模型
- `kb_workflow/crawler/config.py` — CrawlerConfig 配置类,支持代理和延迟配置
- `kb_workflow/auth/zhihu_login.py` — ZhihuLogin 类,二维码登录和 Cookie 管理
- `kb_workflow/pipeline/platforms/zhihu.py` — ZhihuAdapter 类(待修改)
- `kb_workflow/pipeline/processors/download.py` — DownloadProcessor,调用 Adapter 接口
### Established Patterns
- PlatformAdapter 接口: fetch_metadata(), fetch_content(), get_content_type(), get_output_filename()
- BaseProcessor 模式: 状态检查、幂等执行、错误记录
- 配置管理: pydantic-settings + 环境变量
- 错误处理: AuthError 异常类
### Integration Points
- ZhihuAdapter.fetch_metadata() → 调用 ZhihuCrawler.crawl_answer() / crawl_article()
- ZhihuAdapter.fetch_content() → 调用 ZhihuCrawler 并格式化输出(含评论)
- Cookie 过期 → 调用 ZhihuLogin 触发扫码登录
- 输出格式 → 保持与现有 Pipeline 兼容(metadata.json + content.md)
</code_context>
<specifics>
## Specific Ideas
- 评论追加格式示例:
```markdown
## 正文内容
[原回答/文章内容]
---
## 热门评论
1. **@用户A**: 评论内容...
2. **@用户B**: 评论内容...
```
- Cookie 过期检测: 通过 API 响应状态码或返回内容判断
- 自动登录触发: `ZhihuLogin().login_qrcode()` 方法
</specifics>
<deferred>
## Deferred Ideas
None — discussion stayed within phase scope
</deferred>
---
*Phase: 09-pipeline-integration*
*Context gathered: 2026-03-17*