بنقرة واحدة
web-collector
当用户在聊天窗口发送一个或多个链接,并希望默认进入内部收藏流程时使用。强制通过 web-access 抓取网页内容,保留完整原文,整理为 Markdown,并上传到 OneDrive 个人账号目录。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
当用户在聊天窗口发送一个或多个链接,并希望默认进入内部收藏流程时使用。强制通过 web-access 抓取网页内容,保留完整原文,整理为 Markdown,并上传到 OneDrive 个人账号目录。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | web-collector |
| description | 当用户在聊天窗口发送一个或多个链接,并希望默认进入内部收藏流程时使用。强制通过 web-access 抓取网页内容,保留完整原文,整理为 Markdown,并上传到 OneDrive 个人账号目录。 |
把聊天中的网页链接整理为内部收藏 Markdown 文件,并上传到 OneDrive。
在这些场景使用:
web-access 抓网页内容不适用:
internalweb-access 导出为 Markdown,再补充头部元数据这里需要明确区分两层:
web-collector 的依赖web-accessweb-collector 本身只依赖 web-access 的输出契约,不直接依赖 OpenClaw browser。
它真正要求的是:上游最终要能提供一个 payload,至少包含:
{
"title": "页面标题",
"url": "https://example.com/post",
"source": "来源站点",
"markdown_path": "/tmp/web-collector/raw/example.md",
"route": "internal"
}
如果云端的 web-access 恰好是基于 OpenClaw browser 实现的,那么:
OpenClaw browser 只是运行环境实现细节web-collector 的设计依赖因此,当云端出现 Chrome/CORS/WebSocket 问题时,应判断为:
web-access 运行环境不满足web-collector 依赖错了工具运行前真正需要检查的是:
web-access proxy 是否可用markdown_path用户发送链接
-> 拆分为多个 URL
-> 默认进入 internal 路由
-> 平台检测
-> URL 标准化 + 去重
-> 使用 web-access 抓取页面并导出原始 Markdown
-> 生成标题 / 来源 / 标签
-> 组装最终 Markdown
-> 上传到 OneDrive
-> 写入本地缓存
优先使用总入口脚本,而不是逐个手动调用下游脚本。
当 web-access 已经导出原始 Markdown 后,使用:
python3 scripts/collect_from_web_access.py --payload-file /tmp/web-access-export.json
其中 /tmp/web-access-export.json 至少应包含:
{
"title": "页面标题",
"url": "https://example.com/post",
"source": "站点名",
"markdown_path": "/tmp/web-collector/raw/example.md",
"route": "internal"
}
这个入口会自动完成:
如果只想先本地验证,不上传远端:
python3 scripts/collect_from_web_access.py \
--payload-file /tmp/web-access-export.json \
--skip-upload
运行:
python3 scripts/extract_content.py "https://example.com/post"
只做来源标记,不做抓取器路由切换。输出里的 skill 固定为 web-access。
运行:
python3 scripts/deduplicate.py "https://example.com/post"
规则:
本 skill 不扩展浏览器控制能力,只依赖 web-access 已有能力。
期望上游拿回以下信息:
{
"title": "页面标题",
"url": "https://example.com/post",
"source": "站点名",
"markdown_path": "/tmp/web-collector/raw/example.md"
}
要求:
web-access 必须导出完整正文 Markdown运行:
python3 scripts/tag_rules.py --title "页面标题" --content-file /tmp/web-collector/raw/example.md
标签规范:
示例规范:
AI、人工智能 -> 人工智能LLM、大模型、大语言模型 -> 大语言模型Agent、智能体 -> 智能体workflow、工作流 -> 工作流automation、自动化 -> 自动化knowledge management、PKM、知识管理 -> 知识管理OpenAI、Claude、API、Python、JavaScript 保留标准写法运行:
python3 scripts/build_markdown.py \
--title "页面标题" \
--source "来源站点" \
--url "https://example.com/post" \
--route internal \
--content-file /tmp/web-collector/raw/example.md \
--tags "标签1,标签2,标签3,标签4,标签5"
生成结构:
---
title: 页面标题
source: 来源站点
source_url: https://example.com/post
normalized_url: https://example.com/post
collected_at: 2026-04-04T12:00:00+08:00
route: internal
tags:
- 标签1
- 标签2
- 标签3
- 标签4
- 标签5
---
# 原文
...完整正文 Markdown...
文件名:
标题 - YYYY-MM-DD.md首次授权建议在本地执行:
python3 scripts/onedrive_device_code.py
流程:
refresh_tokenrefresh_token 保存到云端密钥环境中上传运行:
python3 scripts/upload_to_onedrive.py /path/to/final.md
所需环境变量:
ONEDRIVE_CLIENT_IDONEDRIVE_REFRESH_TOKENONEDRIVE_TARGET_PATH目录规则:
ONEDRIVE_TARGET_PATH 作为基准目录/✒️ 文稿项目/剪藏文件/2026-04-04/可选环境变量:
ONEDRIVE_CLIENT_SECRETWEB_COLLECTOR_OUTPUT_DIRscripts/extract_content.pyscripts/deduplicate.pyscripts/tag_rules.pyscripts/build_markdown.pyscripts/collect_from_web_access.pyscripts/onedrive_device_code.pyscripts/upload_to_onedrive.py所有脚本都应尽量输出 JSON 结果。错误格式统一为:
{
"success": false,
"error": {
"code": "CONFIG_MISSING",
"message": "ONEDRIVE_TARGET_PATH is required",
"retryable": false
}
}
常见错误码:
DUPLICATE_URLWEB_ACCESS_FAILEDMARKDOWN_EXPORT_FAILEDTAG_GENERATION_FAILEDONEDRIVE_AUTH_REQUIREDONEDRIVE_TOKEN_REFRESH_FAILEDONEDRIVE_UPLOAD_FAILEDCONFIG_MISSING还需要用户提供或确认:
web-access 在目标运行环境中导出 Markdown 的具体交接方式