| name | web-access-v |
| description | 需要从互联网获取信息、核实事实或操作网页界面时使用。覆盖搜索信息、抓取网页内容、访问需要登录的网站、操作页面元素、截图分析页面、从反爬平台(小红书、微博等)提取内容。 适用于"帮我搜一下 XX 是什么""看看这个链接写了什么""去 XX 官网查一下""帮我登录后导出数据""帮我抓取小红书帖子""对比这几个产品"等请求。纯本地操作或不需要联网的任务不触发。 |
| metadata | {"version":"3.0.0","github":"https://github.com/eze-is/web-access","license":"MIT"} |
web-access-v Skill
前置检查
在开始联网操作前,先检查 CDP 模式可用性:
bash ${SKILL_DIR}/scripts/check-deps.sh
- Node.js 22+:必需(使用原生 WebSocket)。版本低于 22 可用但需安装
ws 模块。
- Chrome remote-debugging:在 Chrome 地址栏打开
chrome://inspect/#remote-debugging,勾选 "Allow remote debugging for this browser instance" 即可,可能需要重启浏览器。
检查通过后再启动 CDP Proxy 执行操作,未通过则引导用户完成设置。
浏览哲学
像人一样思考,兼顾高效与适应性的完成任务。
执行任务时不会过度依赖固有印象所规划的步骤,而是带着目标进入,边看边判断,遇到阻碍就解决,发现内容不够就深入——全程围绕「我要达成什么」做决策。这个 skill 的所有行为都应遵循这个逻辑。
① 拿到请求 — 先明确用户要做什么,定义成功标准:什么算完成了?需要获取什么信息、执行什么操作、达到什么结果?这是后续所有判断的锚点。
② 选择起点 — 根据任务性质、平台特征、达成条件,选一个最可能直达的方式作为第一步去验证。一次成功当然最好;不成功则在③中调整。比如,需要操作页面、需要登录态、已知静态方式不可达的平台(小红书、微信公众号等)→ 直接 CDP
③ 过程校验 — 每一步的结果都是证据,不只是成功或失败的二元信号。用结果对照①的成功标准,更新你对目标的判断:路径在推进吗?结果的整体面貌(质量、相关度、量级)是否指向目标可达?发现方向错了立即调整,不在同一个方式上反复重试——搜索没命中不等于"还没找对方法",也可能是"目标不存在";API 报错、页面缺少预期元素、重试无改善,都是在告诉你该重新评估方向。遇到弹窗、登录墙等障碍,判断它是否真的挡住了目标:挡住了就处理,没挡住就绕过——内容可能已在页面 DOM 中,交互只是展示手段。
④ 完成判断 — 对照定义的任务成功标准,确认任务完成后才停止,但也不要过度操作,不为了"完整"而浪费代价。
联网工具选择
- 确保信息的真实性,一手信息优于二手信息:搜索引擎和聚合平台是信息发现入口。当多次搜索尝试后没有质的改进时,升级到更根本的获取方式:定位一手来源(官网、官方平台、原始页面)。
| 场景 | 工具 |
|---|
| 搜索摘要或关键词结果,发现信息来源 | WebSearch |
| URL 已知,需要从页面定向提取特定信息 | WebFetch(拉取网页内容,由小模型根据 prompt 提取,返回处理后结果) |
| URL 已知,需要原始 HTML 源码(meta、JSON-LD 等结构化字段) | curl |
| 页面中的图片/图表/非文本内容需要理解语义 | 截图 + 视觉模型分析 |
| 非公开内容,或已知静态层无效的平台(小红书、微信公众号等公开内容也被反爬限制) | 浏览器 CDP |
| 需要登录态、交互操作,或需要像人一样在浏览器内自由导航探索 | 浏览器 CDP |
浏览器 CDP 不要求 URL 已知——可从任意入口出发,通过页面内搜索、点击、跳转等方式找到目标内容。WebSearch、WebFetch、curl 均不处理登录态。
进入浏览器层后,/eval 是手,/screenshot + 视觉能力是眼睛,两者配合使用。浏览网页时,先了解页面结构,再决定下一步动作。
DOM 优先,视觉补位:能从 eval/DOM 拿到的信息优先用 DOM 方式;DOM 拿不到或不确定时,截图+视觉分析作为补充。详见 references/visual-analysis.md。
浏览器 CDP 模式
通过 CDP Proxy 直连用户日常 Chrome,天然携带登录态,无需启动独立浏览器。
若无用户明确要求,不主动操作用户已有 tab,所有操作都在自己创建的后台 tab 中进行,保持对用户环境的最小侵入。不关闭用户 tab 的前提下,完成任务后关闭自己创建的 tab,保持环境整洁。
启动
bash ${SKILL_DIR}/scripts/check-deps.sh
脚本会依次检查 Node.js、Chrome 端口,并确保 Proxy 已连接(未运行则自动启动并等待)。Proxy 启动后持续运行。
API 端点速查
| 端点 | 方法 | 说明 |
|---|
/targets | GET | 列出用户已打开的 tab |
/new?url=URL | GET | 创建新后台 tab(自动等待加载) |
/info?target=ID | GET | 页面信息(title、url、readyState) |
/eval?target=ID | POST | 执行 JS(body 为表达式) |
/click?target=ID | POST | JS click(body 为 CSS 选择器) |
/clickAt?target=ID | POST | CDP 真实鼠标点击(body 为 CSS 选择器) |
/setFiles?target=ID | POST | 文件上传(body 为 JSON) |
/screenshot?target=ID | GET | 截图(file= 保存到文件) |
/navigate?target=ID&url=URL | GET | 导航(自动等待加载) |
/back?target=ID | GET | 后退 |
/scroll?target=ID | GET | 滚动(y= 像素 / direction=bottom) |
/close?target=ID | GET | 关闭 tab |
详细用法、参数、示例 → references/cdp-api.md
技术事实
- 页面中存在大量已加载但未展示的内容——轮播中非当前帧的图片、折叠区块的文字、懒加载占位元素等,它们存在于 DOM 中但对用户不可见。以数据结构(容器、属性、节点关系)为单位思考,可以直接触达这些内容。
- DOM 中存在选择器不可跨越的边界(Shadow DOM 的
shadowRoot、iframe 的 contentDocument等)。eval 递归遍历可一次穿透所有层级,返回带标签的结构化内容,适合快速了解未知页面的完整结构。
/scroll 到底部会触发懒加载,使未进入视口的图片完成加载。提取图片 URL 前若未滚动,部分图片可能尚未加载。
- 拿到媒体资源 URL 后,公开资源可直接下载到本地后用读取;需要登录态才可获取的资源才需要在浏览器内 navigate + screenshot。
- 短时间内密集打开大量页面(如批量
/new)可能触发网站的反爬风控。
- 平台返回的"内容不存在""页面不见了"等提示不一定反映真实状态,也可能是访问方式的问题(如 URL 缺失必要参数、触发反爬)而非内容本身的问题。
任务结束
用 /close 关闭自己创建的 tab,必须保留用户原有的 tab 不受影响。
Proxy 持续运行,不建议主动停止——重启后需要在 Chrome 中重新授权 CDP 连接。
信息核实类任务
核实的目标是一手来源,而非更多的二手报道。多个媒体引用同一个错误会造成循环印证假象。
搜索引擎和聚合平台是信息发现入口,是定位信息的工具,不可用于直接证明真伪。找到来源后,直接访问读取原文。同一原则适用于工具能力/用法的调研——官方文档是一手来源,不确定时先查文档或源码,不猜测。
| 信息类型 | 一手来源 |
|---|
| 政策/法规 | 发布机构官网 |
| 企业公告 | 公司官方新闻页 |
| 学术声明 | 原始论文/机构官网 |
| 工具能力/用法 | 官方文档、源码 |
找不到官网时:权威媒体的原创报道(非转载)可作为次级依据,但需向用户说明:"未找到官方原文,以下核实来自[媒体名]报道,存在转述误差可能。"单一来源时同样向用户声明。
站点经验
操作中积累的特定网站经验,按域名存储在 references/site-patterns/ 下。
已有经验的站点:!ls ${SKILL_DIR}/references/site-patterns/ 2>/dev/null | sed 's/\.md$//' || echo "暂无"
确定目标网站后,如果上方列表中有匹配的站点,必须读取对应文件获取先验知识(平台特征、有效模式、已知陷阱)。经验内容标注了发现日期,当作可能有效的提示而非保证——如果按经验操作失败,回退通用模式并更新经验文件。
CDP 操作成功完成后,如果发现了有必要记录经验的新站点或新模式(URL 结构、平台特征、操作策略),主动写入对应的站点经验文件。只写经过验证的事实,不写未确认的猜测。
文件格式:
---
domain: example.com
aliases: [示例, Example]
updated: 2026-03-19
---
## 平台特征
架构、反爬行为、登录需求、内容加载方式等事实
## 有效模式
已验证的 URL 模式、操作策略、选择器
## 已知陷阱
什么会失败以及为什么
经验/陷阱内容标注发现日期,当作"可能有效的提示"而非"保证正确的事实"。
References 索引
| 文件 | 何时加载 |
|---|
references/cdp-api.md | 需要 CDP API 详细参考、JS 提取模式、错误处理时 |
references/visual-analysis.md | 需要视觉分析策略、截图时机、prompt 方向时 |
references/browser-patterns.md | 需要导航模式、媒体提取、交互验证、验证码处理、视频采帧、登录判断时 |
references/sub-agent-strategy.md | 需要并行分治、子 Agent prompt 写法时 |
references/site-patterns/{domain}.md | 确定目标网站后,读取对应站点经验 |
OpenClaw 补充工具
除 CDP Proxy 外,OpenClaw 环境还提供以下联网工具,可按需组合:
| 工具 | 调用方式 | 场景 |
|---|
| 网页搜索 | mcporter call web-search-prime.web_search_prime search_query='...' | 搜索关键词,发现信息来源(对应原 WebSearch) |
| 网页阅读 | mcporter call web-reader.webReader url='...' | 抓取已知 URL 的页面内容(对应原 WebFetch) |
当 CDP Proxy 不可用(如未配置 Chrome remote-debugging)时,回退到 mcporter web-reader 处理静态页面,或等待 CDP 环境就绪。