关于 scrape-review-schema
用于生成浏览器审核页面的技能,可供检查网页抓取模式及提取值。它收集审核者的反馈,并将反馈返回给调用方。
主要功能
- 01读取页面分析与模式
- 02选择原始或渲染后的 HTML
- 03生成浏览器审核页面
- 04收集审核者反馈
适用场景
- 01审核建议字段与提取值
- 02结合已保存页面检查提取结果
- 03向调用方提交模式修改意见
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ zytedata/ skills --skill scrape-review-schema安装后在 Claude Code 中输入/scrape-review-schema确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/review.htmlreview.jsstyle.cssscripts/feedback-server.pytests/test_feedback_server.py详细介绍
你正在生成一个审核页面,让用户在浏览器中验证拟定的架构和提取出的值。
读取 ${CLAUDE_SKILL_DIR}/../scrape/references/python-environments.md。
输入
原始参数字符串为 $ARGUMENTS。将其拆分为最多 5 个位置参数。
第 1、2 和 4 个参数是以空白字符分隔的令牌;第 3 和第 5 个参数是可能包含空白字符的 JSON 字面量 —
通过匹配括号来识别它们的边界(如果调用方用单引号或双引号括起参数,则去掉外层引号):
- spec_path:规格文件夹的路径,例如
.scrape/books-toscrape - work_path:工作目录的路径,例如
.scrape/.work/books-toscrape - schema:包含拟定架构的 JSON 对象字面量(以
{开始,以匹配的}结束) - html_variant:要使用的 HTML —
raw或rendered - changes(可选):上一轮变更说明的 JSON 数组字面量(以
[开始,以匹配的]结束),例如["Re-analyzed price across all pages","Dropped field isbn"]
架构 JSON 使用 JSON Schema 格式(完整详情请参阅 ${CLAUDE_SKILL_DIR}/../scrape/references/extraction-spec.md):
{
"type": "object",
"properties": {
"price": {
"type": "string",
"description": "Product price"
}
}
}
字段还可以带有 source 注解:"requested"(用户提出)或 "discovered"(AI 发现)。
流程
1. 读取分析数据
列出 {spec_path}/pages/ 中的页面子目录(每个子目录都是一个页面)。对于每个页面,读取其元数据 {spec_path}/pages/{page_id}/meta.json 和分析数据 {work_path}/analyze-page/{page_id}.{html_variant}.json。
2. 创建临时目录
创建一个名为 scrape-review-XXXXXX 的临时目录(其中 XXXXXX 是随机后缀)。记下生成的路径作为 {review_dir},并在后续步骤中使用它。
3. 复制静态资源
将此技能目录中的捆绑资源复制到临时目录:
review.htmlstyle.cssreview.js
使用 ${CLAUDE_SKILL_DIR}/assets/ 作为源路径。
4. 复制已保存的 HTML 页面
对于 {spec_path}/pages/ 中的每个页面目录,将所选变体的 HTML 复制到 {review_dir}/pages/{page_id}.html:
cp {spec_path}/pages/{page_id}/{html_variant}.html {review_dir}/pages/{page_id}.html
这样会展平目录结构,以供审核页面的 iframe 使用。
5. 生成 data.js
构建并写入 {review_dir}/data.js,其中包含审核页面所需的全部数据。
端口使用字面占位符 AGENT_PORT_PLACEHOLDER — 服务绑定后会替换它。如果传入了 changes(可选的第 5 个参数),则包含 REVIEW_CHANGES,以便页面显示 Agent 做了哪些操作:
const AGENT_URL = "http://127.0.0.1:AGENT_PORT_PLACEHOLDER/feedback";
const REVIEW_CHANGES = ["Re-analyzed price across all pages", "Dropped field isbn"];
const REVIEW_DATA = {
fields: [
{
name: "price",
type: "str",
description: "Product price",
source: "requested",
values: {
"detail-1": {"value": "$29.99", "url": "https://..."},
"detail-2": {"value": "$49.99", "url": "https://..."}
}
}
],
pages: {
"detail-1": {
url: "https://...",
html_file: "pages/detail-1.html"
}
}
};
6. 在浏览器中打开并等待反馈
准确运行以下命令,并在命令完成前不要进行任何其他操作:
FEEDBACK_FILE="{review_dir}/feedback.txt"
uv run "${CLAUDE_SKILL_DIR}/scripts/feedback-server.py" "{review_dir}" "${FEEDBACK_FILE}"
cat "${FEEDBACK_FILE}"
运行此命令前,先在消息中向用户报告 {review_dir},以便他们在需要时重新打开页面。
脚本会在浏览器中打开审核页面,等待用户提交反馈,然后自动退出。你的唯一任务是等待命令完成,
然后从 ${FEEDBACK_FILE} 读取反馈。
将反馈文本返回给调用方。