作者:互联网 时间: 2026-07-18 08:57:55
- 逐个抓取3864个详情页,提取车辆全维度信息
- 分析了车辆特征与竞拍热度之间的关联性- 构建了个性化推荐引擎,根据用户偏好推荐最佳竞拍标的
- 将整个流程封装成可复用的 Skill- 经历了3轮代码审查和19个问题修复
- 生成可视化报告和完整项目文档**整个过程只说了7句话。**---## 二、WorkBuddy 的核心能力### 能力1:网页抓取与逆向分析**用户说:** "查看这个网页 https://jpxkc.cbex.com/page/jpxkc/s/index.html"**WorkBuddy 做了什么:**不是简单地把网页内容读出来,而是:1. 访问网页,发现标的列表是动态加载的(页面源码里没有数据)
2. 分析 JavaScript 源码,找到隐藏的 API 端点 `/page/jpxkc/zc_prjs/prj_li`3. 编写 Python 脚本,通过 API 分页抓取全部434条数据
4. 发现列表页缺少起始价,自动追加详情页抓取5. 用10线程并发抓取,支持断点续传
**意味着什么:** WorkBuddy 能处理动态网站、逆向分析 API、编写并执行抓取脚本,不只是"看网页"。

---
### 能力2:大规模数据处理
**用户说:** "其它期的也都获取下"
**WorkBuddy 做了什么:**
1. 从首页源码中找到全部10个期次的 ID 映射
2. 编写批量抓取脚本,内置10期配置,一键运行3. 15线程并发抓取3864个详情页,每200条自动保存中间结果
4. 处理过程中遇到网络超时自动重试5. 输出标准 CSV 文件,带 BOM 编码方便 Excel 打开
**数据规模:**
- 10期 × 平均386条/期 = 3864条标的- 每条标的的详情页文本约2000字
- 总数据量约9MB纯文本**意味着什么:** WorkBuddy 不是"聊两句就完了",它能处理数千条数据的批量任务,并且有完善的错误处理和断点续传机制。---### 能力3:非结构化文本解析**用户说:** "根据标的物介绍和报价次数整理一份关联分析"**WorkBuddy 做了什么:**详情页的"标的物调查情况表"是纯文本,格式不统一,有人工填写的痕迹。WorkBuddy:1. 分析文本结构,识别出四个段落(权证情况、标的现状、权利限制、标的物介绍)2. 为每个段落编写正则表达式提取结构化字段
3. 处理多种日期格式(`2019/6/4`、`2016年 12月 13日`、`2014 - 03 - 07`)4. 统一排放标准写法(国V/国Ⅴ/国五 → 国V)
5. 处理复杂文本(`拖运费用:1296元、停车费用2256...共计23352元`)6. 最终从非结构化文本中提取出40 个结构化字段
**意味着什么:** WorkBuddy 能把"人读的文本"变成"机器可分析的数据",处理真实世界数据中的格式不一致
问题。---### 能力4:数据分析与可视化**用户说:** "整理一份关联分析"**WorkBuddy 做了什么:**1. 计算各维度与报价次数的 Pearson 相关系数2. 按燃料类型、排放标准、车龄、违章记录等维度分组统计
3. 生成暗色主题的 HTML 可视化报告(Chart.js 图表 数据表格)4. 发现关键洞察:
- 所有标的均以最高限价成交(成交价 = 起始价 × 1.5)- 无违章车比有违章车多72%的报价次数
- 国III排放车平均116次报价,远超国VI的29次- 三证齐全的车比缺失的车多2.6倍报价
**意味着什么:** WorkBuddy 不只是"执行命令",它能从数据中发现洞察,生成专业水准的分析报告。
---
### 能力5:迭代式问题修复
**用户说:** "车辆特征里包含了权利限制及瑕疵情况吗?"
**WorkBuddy 做了什么:**
发现原始数据中100%包含该段落,但之前的解析脚本遗漏了3个字段。于是:
1. 创建 `reparse_with_defects.py`,补充提取查封状态、查封法院、其他瑕疵
2. 重新生成分析报告(v2)3. 用户继续追问"标的权证情况有没有?"
4. 再次发现遗漏,创建 v3 版本补充提取行驶证、登记证、车牌5. 用户指出"展示的车龄、违章、停车费怎么都是0"
6. 深入排查发现3个正则匹配遗漏(日期带空格、停车费复杂格式、违章"无"格式)7. 修复后提取率从84%提升至96.3%
**意味着什么:** WorkBuddy 能在对话中持续迭代,用户每指出一个问题就修复一个问题,不需要从头重来。


---
### 能力6:智能推荐系统构建
**用户说:** "还要有用户给出自己的期望,然后给出推荐竞拍的标的物"
**WorkBuddy 做了什么:**
从零构建了一个完整的推荐引擎:
1. **筛选层**:根据用户设定的硬性约束(车龄上限、排放下限、违章上限等)过滤标的
2. **评分层**:三维评分模型- 价值分(品牌30 车龄25 排放20 偏好15 燃料10 = 100)
- 安全分(违章30 权证20 停车费15 检验有效期15 抵押10 瑕疵10 = 100)- 中标分(报价次数越少越容易中标)
3. **排序层**:按用户指定的权重加权计算综合得分4. **输出层**:生成推荐列表 CSV 可视化 HTML 报告
**三种使用方式:**
- 交互式问答(逐项输入偏好)- 预设策略一键运行(稳健/均衡/品质优先)
- JSON 配置文件(精细控制所有参数)**意味着什么:** WorkBuddy 能构建有业务逻辑的系统,不只是写脚本。推荐引擎涉及评分模型设计、权重分配、品牌识别等领域知识。---### 能力7:代码审查与质量保证**用户说:** "使用当前模型重新review下之前的所有过程以及最后的skills"**WorkBuddy 做了什么:**对全部5个脚本和3个文档进行系统审查,3轮共发现并修复19个问题:**第一轮(8个问题):**- P0: HTML报告事实错误("仅约半数有行驶证"实际93.7%有)
- P0: 所有脚本硬编码绝对路径- P1: 冗余的v1解析代码
- P1: Referer设置在fetch之后(等于没设)- P1: 文档段落计数矛盾
- P2: 未使用变量、缺少说明、__pycache__打包**第二轮(5个问题):**- P0: 日期正则不支持空格 → 提取率84%→96.3%
- P0: 停车费只匹配简单格式- P0: 违章"无"格式不匹配
- P1: vehicle_age=0被误判为"新车"给高分- P1: 负车龄显示为"-0.3年"
**第三轮(6个问题):**
- P1: SKILL.md多处描述过时- P0: 4个脚本缺少 os.makedirs,首次运行崩溃
- P2: 残留未使用导入**意味着什么:** WorkBuddy 能自我审查代码质量,发现逻辑错误、事实错误、健壮性问题,并自动修复。---### 能力8:技能封装与复用**用户说:** "将上面的所有流程整理成一个skills"**WorkBuddy 做了什么:**1. 使用 skill-creator 初始化技能目录结构2. 将5个脚本和3个参考文档组织成标准 Skill 结构
3. 编写 SKILL.md 主文档,包含工作流、策略建议、技术注意事项4. 通过 skill-creator 验证并打包为 zip
5. 安装到用户级目录(`~/.workbuddy/skills/`),跨项目可用**Skill 结构:**```
jingpai-auction-analyzer/ (3253行代码/文档)├── SKILL.md主文档
├── scripts/5个可执行脚本│ ├── scrape_auction_list.py
│ ├── scrape_auction_details.py│ ├── parse_and_analyze.py
│ ├── gen_trend_report.py│ └── recommend.py
└── references/ 3个参考文档├── website_structure.md
├── data_schema.md└── recommendation_model.md
```**意味着什么:** WorkBuddy 能把一次对话中积累的工作经验封装成可复用的技能,下次遇到类似任务时自动触发,不需要从头开始。---### 能力9:数据验证与质量保证**用户说:** "用这个 https://jpxkc.cbex.com/jpxkc/prj/detail/580619.html 验证下"**WorkBuddy 做了什么:**1. 实时抓取该详情页2. 逐字段对比网页原始数据与解析结果
3. 22个字段全部匹配(✓)4. 用推荐引擎对该标的评分,验证评分逻辑合理性
5. 确认这辆高违章 缺登记证 254次报价的车被正确地排在推荐列表末尾**意味着什么:** WorkBuddy 不只是"写完就交付",它能自己验证结果的准确性,用真实数据检验解析逻辑。---## 三、对话全程用户说了什么| 序号 | 用户原话 | WorkBuddy 完成的工作 ||------|---------|-------------------|
| 1 | "查看这个网页" | 逆向分析网站API,编写抓取脚本 || 2 | "获取202606期所有标的起始价、成交价、竞拍次数" | 抓取434条列表 详情页起始价 |
| 3 | "其它期的也都获取下" | 批量抓取全部10期3864条数据 || 4 | "根据标的物介绍和报价次数整理关联分析" | 解析详情文本,生成关联分析报告 |
| 5 | "车辆特征里包含了权利限制及瑕疵情况吗?" | 补充提取查封/法院/瑕疵字段 || 6 | "标的权证情况有没有?" | 补充提取行驶证/登记证/车牌字段 |
| 7 | "展示的车龄、违章、停车费怎么都是0" | 修复3个正则匹配遗漏 || 8 | "评估标准里有检验有效期止日期这一项吗?" | 新增检验有效期维度到安全评分 |
| 9 | "标的物介绍里的10个维度都要有" | 扩展解析到15个字段全覆盖 || 10 | "整理成一个skills" | 封装为可复用Skill(3253行) |
| 11 | "还要有用户给出期望,然后给出推荐标的" | 构建三维评分推荐引擎 || 12 | "用580619验证下" | 逐字段验证22项全部通过 |
| 13 | "重新review下" | 3轮审查修复19个问题 || 14 | "发布到skillhub" | 打包zip准备发布 |
skills地址:[京牌小客车司法处置数据抓取与分析](https://skillhub.cloud.tencent.com/skills/jingpai-auction-analyzer)
---
### 适合
- **数据抓取与分析**:从网站抓取数据、清洗、分析、可视化
- **多步骤自动化**:需要编写多个脚本串联的复杂工作流- **迭代式开发**:用户逐步提出需求,AI逐步完善
- **工具构建**:把一次性工作封装成可复用的技能- **代码审查**:自我检查代码质量、发现逻辑错误
- **文档生成**:把工作过程自动沉淀为文档### 不适合- 需要人工登录认证的操作(如发布到需登录的平台)- 需要物理世界交互的任务
- 需要实时性保证的在线服务---## 五、技术栈一览本次对话中 WorkBuddy 使用的技术:| 类别 | 技术 ||------|------|
| 语言 | Python 3.13 || 网络请求 | urllib.request |
| 并发 | concurrent.futures.ThreadPoolExecutor || 文本解析 | re(正则表达式) |
| 数据处理 | csv, json, collections || 可视化 | Chart.js 4.4.0(生成HTML报告) |
| 统计分析 | Pearson相关系数 || 文件编码 | utf-8-sig(CSV)、utf-8(HTML) |
| 技能框架 | WorkBuddy Skill(SKILL.md scripts/ references/) |---## 六、关键数据| 指标 | 数值 ||------|------|
| 用户指令数 | 15条 || 抓取数据量 | 3864条标的 |
| 解析字段数 | 40 个 || 脚本总行数 | 2663行 |
| 文档总行数 | 590行 || 审查修复问题数 | 19个 |
| 字段验证通过率 | 22/22 = 100% || Skill总大小 | 45KB |
","createTime":1783238128,"ext":{"closeTextLink":0,"comment_ban":0,"description":"","focusRead":0},"favNum":0,"html":"","isOriginal":0,"likeNum":0,