4.6 KiB
4.6 KiB
phase, plan, wave, title, depends_on, files_modified, autonomous, requirements
| phase | plan | wave | title | depends_on | files_modified | autonomous | requirements | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 4 | 2 | 2 | 废弃 app/services/crawler/ 私有复制文件 + jobs_spider/ 标记废弃 |
|
|
true |
|
Phase 4 Plan 02: 废弃私有复制文件 + jobs_spider/ 标记废弃
Objective
Plan 01 执行后,app/services/crawler/ 的 11 个私有复制文件不再被任何 facade 引用。
本 Plan 将这些文件添加 DEPRECATED 文件头注释,表明它们已废弃,并对 jobs_spider/ 做同样处理。
注意: 策略是"添加废弃标记"而非"直接删除",避免第三方未知调用方受影响。 未来可在下一个里程碑中删除这些文件。
Must Haves
- 11 个私有文件(
_base.py、_http_client.py、_boss_*、_job51_*、_zhilian_*)文件头添加## DEPRECATED注释 jobs_spider/boss/boos_api.py文件头添加## DEPRECATED注释jobs_spider/CLAUDE.md添加废弃声明(如有)pytest tests/ -v全部通过(废弃标记不影响 import)
Wave 2(依赖 Plan 01 完成)
Task 2.1: 为 _base.py 和 _http_client.py 添加废弃头
在 `app/services/crawler/_base.py` 文件顶部(第 1 行前)插入: ```python """ ⚠️ DEPRECATED — 2026-03-21此文件是 crawler_core.base 的手工复制,已废弃。 请改用: from crawler_core.base import Result, BaseFetcher, BaseSearcher 将在下一里程碑中删除。 """
在 `app/services/crawler/_http_client.py` 文件顶部插入:
```python
"""
⚠️ DEPRECATED — 2026-03-21
此文件是 crawler_core.http_client 的手工复制,已废弃。
请改用: from crawler_core.http_client import HTTPClient
将在下一里程碑中删除。
"""
Task 2.2: 为 9 个平台私有文件添加废弃头
分别为以下文件在文件头(原 docstring 的第一行)插入 `⚠️ DEPRECATED — 2026-03-21\n\n此文件已废弃,请改用 spiderJobs.platforms.* 相应模块。` 或更新已有 docstring 中的说明文字:app/services/crawler/_boss_api.py(已有 docstring "复制自...",在其下方添加废弃行)app/services/crawler/_boss_client.pyapp/services/crawler/_boss_sign.pyapp/services/crawler/_job51_api.pyapp/services/crawler/_job51_client.pyapp/services/crawler/_zhilian_api.py(需要先读文件确认 docstring)app/services/crawler/_zhilian_client.pyapp/services/crawler/_zhilian_sign.py
统一格式:在原 docstring 下方第二行插入:
⚠️ DEPRECATED — 2026-03-21. 请改用 spiderJobs.platforms.{boss|job51|zhilian} 对应文件。
Task 2.3: 标记 jobs_spider/ 旧框架废弃
1. 在 `jobs_spider/boss/boos_api.py` 文件最顶部(第 1 行前)插入注释块: ```python # ⚠️ DEPRECATED — 2026-03-21 # 此文件是最旧的 Boss 爬虫实现,已由 spiderJobs/platforms/boss/ + crawler_core 替代。 # 不再接受新的生产流量,保留仅供历史参考。 # ```- 检查
jobs_spider/CLAUDE.md是否存在(通过 list_dir 查看),若存在则在顶部添加废弃说明; 若不存在则创建,内容为:# ⚠️ DEPRECATED **废弃时间:** 2026-03-21 `jobs_spider/` 目录下的所有文件已由以下模块替代,不再维护: - `spiderJobs/platforms/boss/` + `crawler_core` — Boss 直聘 - `spiderJobs/platforms/job51/` + `crawler_core/qcwy/` — 前程无忧 - `spiderJobs/platforms/zhilian/` + `crawler_core/zhilian/` — 智联招聘 文件保留仅供历史参考,将在下一里程碑中删除。
Verification
# 1. 确认 facade 文件不再引用私有文件
grep -rn "from app.services.crawler._" app/services/crawler/boss.py \
app/services/crawler/qcwy.py app/services/crawler/zhilian.py \
&& echo "❌ 仍有旧导入" || echo "✅ facade 无旧导入"
# 2. 确认废弃标记存在
grep -l "DEPRECATED" app/services/crawler/_base.py \
app/services/crawler/_boss_api.py \
jobs_spider/boss/boos_api.py \
&& echo "✅ 废弃标记存在"
# 3. 全量回归(废弃标记不影响 import)
pipenv run python -m pytest tests/ -v --tb=short