用途:帮助用户快速定义从某个网站抽取哪些数据。流程为下载 1 个详情页、发现字段,并在终端中反复迭代 schema 直到用户确认。输出是一个草稿规范文件夹,包含已确认的 schema 和示例值(不存储页面,页面存储属于后续阶段)。之后可用 /scrape-spec 扩展(更多页面、变体比较、导航)。
主要能力与用法:解析意图,确定 target_url、data_type(必须为单数)、field_hints、site_name;创建 .scrape/{site_name}/{data_type}/ 与 .scrape/.work/{site_name}/explore、analyze-page 目录;通过 AskUserQuestion 让用户选择提供详情页 URL 或自动探索站点;用 download.py 下载页面;调用 /scrape-analyze-page 子代理分析 rendered.html(不存在则用 raw.html),读取其 JSON 输出;据此构建 JSON Schema(draft/2020-12),映射类型并标注 source 为 requested 或 discovered;在终端按 requested/discovered 分组展示字段与值,等待用户批准、删除、保留、重命名或修改描述,循环直到批准;最后写入 .scrape/{site_name}/{data_type}/spec.json 和站点级 .scrape/{site_name}/spec.json。
硬性限制:主代理不得自行获取、读取、grep 或解析任何 HTML(包括 raw.html、rendered.html、*.cleaned.html);页面下载由 /scrape-explore-site 子代理处理,字段发现由 /scrape-analyze-page 子代理处理;构建 schema 前必须先调用 /scrape-analyze-page;等待期间不得读取 HTML 或运行 clean_html.py、extract_metadata.py 等解析代码;只能读取子代理保存的 JSON 输出。若站点被封锁,可建议 Zyte,仅在用户同意后调用 /scrape-zyte-login 并重跑探索。
适用场景:需要为某站点快速定义抽取字段并生成规范草稿时。限制:仅处理单个详情页,不存储页面;data_types 只列主要数据类型,navigation 由 /scrape-spec 后续添加;示例值超过 200 字符会截断。