## Before 一次性人工操作:先从商品领域标签里临时想 10 个问题关键词,再进 `kefu.bytedance.net` 搜索。遇到 SSO、Chrome 登录态、浏览器连接重置或搜索无结果时,只能临场切工具、改搜索词、手动把结果整理成 Markdown 表。 ## After 新增 `kefu_search_capture.py` 后,同类任务变成可恢复采集流程: ```bash python /Users/bytedance/Documents/job-bu/data-analysis-workspace/tools/kefu_search_capture.py \ --input /Users/bytedance/Documents/job-bu/data-analysis-workspace/inputs/product_scene_keywords.csv \ --limit 10 \ --out-dir /Users/bytedance/Documents/job-bu/data-analysis-workspace/runs/kefu-search-capture/2026-05-13 ``` 输出包含两层证据: | 层级 | 内容 | 用途 | | --- | --- | --- | | 页面搜索结果 | query、结果标题、页面可见推荐方案 | 证明客服工作台当前召回什么 | | 本地知识库补全 | knowledgeId/本地 Markdown 路径、正文摘要、证据句 | 补足页面不稳定或正文难抓的问题 | 失败也被结构化: | status | 含义 | 下一步 | | --- | --- | --- | | captured | 已采到结果和正文 | 进入最终表 | | no_result | 原词无召回 | 走 query rewrite 再试 | | login_blocked | 登录态阻塞 | 切 Chrome 或 computer-use | | control_reset | 浏览器控制中断 | 从 checkpoint 继续跑小批次 | 这样后续不再只是“跑了前 10 个关键词”,而是可以稳定扩展到 50/100 个商品场景,并保留每个推荐方案的来源、召回词和失败原因。