benchmark_v1.md 4.58 KB

weibo-scraper Benchmark v1

目标 Agent: weibo-scraper
生成时间: 2026-04-13
满分: 100 分 | 目标线: ≥95 分


评分维度

D1 数据准确性 (Accuracy) — 权重 20%

分值 标准
10 热搜条目 word / num / rank / realpos 提取 100% 正确,无字段错位或类型错误
8-9 核心字段正确,个别辅助字段(如 note)存在少量空值但已合理标记
6-7 出现 1-2 处字段映射错误(如 rank 与 realpos 混淆)或数值类型未转换
4-5 存在明显字段缺失或映射错误(如 word_scheme 当作 content.title)
0-3 核心字段大面积错误,输出无法被我方 schema 解析

D2 反爬策略 (Anti-Crawl) — 权重 20%

分值 标准
10 完整使用 UA 轮换池(≥5 条)、正确 Referer、请求间隔 3-5s、每分钟 ≤20 次、超限后休眠 ≥60s
8-9 具备 UA 轮换和基础频率控制,但缺少 Accept-Encoding 或 Connection 等细节 Header
6-7 有 UA 切换但频率控制不足(间隔
4-5 仅使用单一 UA,无频率控制,极易触发 403/418
0-3 使用 Python 默认 UA 或明显爬虫标识,直接无法获取数据

D3 数据清洗 (Data Cleaning) — 权重 15%

分值 标准
10 正确过滤 is_ad / topic_ad,仅保留 flag ∈ [0,1,2],以 word 去重,空值标记为 null,热度值纯数字
8-9 完成广告过滤和有效性筛选,去重逻辑正确但极端长文本未截断
6-7 过滤了广告但未处理 flag 异常值,或去重键选择不当导致漏重
4-5 仅过滤明显广告,大量低质/异常数据混入结果
0-3 未做任何清洗,原始数据直接输出

D4 Schema 标准化 (Schema Normalization) — 权重 20%

分值 标准
10 输出严格符合 weibo_hotsearch_v1 schema:rank / word / heat / label / board_type / is_topic / source_url / crawl_time 完整且结构正确;必填字段 100% 存在
8-9 schema 基本正确,1-2 个非必填字段位置略偏或命名未完全对齐
6-7 缺少 note / word_scheme 等细粒度信息,或字段名称未统一为 snake_case
4-5 schema 结构混乱,必填字段(rank、word、heat、board_type、source_url、crawl_time)缺失
0-3 输出为平铺 JSON 或自定义结构,无法被下游系统消费

D5 合规风控 (Compliance) — 权重 15%

分值 标准
10 遵守 robots.txt Crawl-delay 精神(间隔 ≥10s),不采集用户隐私(UID/手机号/私信),数据保留期声明 ≤90 天,保留 source_url 溯源
8-9 请求频率合规,未采集隐私数据,但数据保留期未明确说明
6-7 频率略高(间隔 5-9s)但未造成实质风险,无隐私数据采集
4-5 明显高频请求可能违反平台规则,或对公开数据边界认识模糊
0-3 尝试采集用户隐私、使用破解签名/逆向 App 等违规手段

D6 异常降级 (Fault Tolerance) — 权重 10%

分值 标准
10 主 API 失败时能自动降级到第三方聚合 API(如 60s / XXAPI),再失败则缓存上次结果;非 JSON 响应时触发重试/告警
8-9 有 1 级备用方案(第三方 API),但切换逻辑未完整覆盖所有异常状态码
6-7 有重试逻辑(如 403 后等待 30s 重试),但无备用数据源
4-5 仅抛出异常或返回空数组,无有效容错
0-3 异常时程序崩溃或返回未处理的报错堆栈

总分计算

Total = D1×0.20 + D2×0.20 + D3×0.15 + D4×0.20 + D5×0.15 + D6×0.10

评级

总分 评级 说明
95-100 S 生产级可用,可直接上线
85-94 A 质量优秀,少量微调即可投产
70-84 B 基本可用,存在明显改进空间
50-69 C 勉强运行,不建议投产
D 不合格,需重新训练

自动评分 checklist (Evolver 使用)

  • [ ] 输出是否包含 rank、word、heat、board_type、source_url、crawl_time?
  • [ ] heat 是否为纯数字整数?
  • [ ] rank 是否与原始 realpos 一致?
  • [ ] 是否剔除了 is_ad=true 或 topic_ad=true 的条目?
  • [ ] 是否基于 (word, board_type) 去重?
  • [ ] 请求间隔是否 ≥3 秒?
  • [ ] 是否携带 Referer: https://weibo.com?
  • [ ] 主 API 返回非 JSON 时是否有降级/重试动作?