--- name: web-access license: MIT description: 复杂 web 任务的方法论与跨 session 站点经验库。Use when:抓取反爬或需登录态的平台(小红书、微信公众号、微博、推特、知乎等)、 目标站点结构未知需要边看边探索、多来源交叉核实信息、分析页面里的图片/视频内容、并行调研多个独立来源、 或 web_search/web_fetch 拿不到目标内容需要升级到真实浏览器时。 简单的已知 URL 抓取或单步页面操作(无登录/反爬因素)不需要加载本 skill——直接用 web_fetch / browser 工具即可。 metadata: origin: 浏览方法论改编自 web-access(一泽 Eze,MIT);执行层改用 octo 原生 browser 工具,无 Node 依赖 --- # Skill: web-access 复杂 web 任务的方法论:把内置的 `web_search` / `web_fetch` 与 `browser` 工具(驱动你日常的、已登录的 Chrome/Edge)按场景编排起来,并跨 session 积累站点经验。 ## 前置:浏览器自动化 `web_search` / `web_fetch` 开箱即用,不需要任何配置。 只有当任务需要**操作浏览器界面 / 登录态 / 动态渲染页面**时,才需要 `browser` 工具能连上你日常的浏览器。一次性配置: 1. 在要用的浏览器打开 inspect 页面并勾选 **Allow remote debugging for this browser instance**(可能需重启浏览器): - Chrome:`chrome://inspect/#remote-debugging` - Edge:`edge://inspect`,然后点左侧 **Remote debugging** 2. 或直接运行 `octo browser setup`,它会给出上面的步骤、验证连接、并把端口写进配置。 连上后 `browser` 工具天然携带登录态——大多数常用网站都已登录。无独立浏览器、无需命令行参数。 > 部分站点对浏览器自动化检测严格,存在账号限流/封禁风险。操作社交平台(小红书等)**强烈建议用小号**。Agent 继续操作即视为接受。 ## 浏览哲学 **像人一样思考,兼顾高效与适应性地完成任务。** 带着目标进入,边看边判断,遇到阻碍就解决,发现内容不够就深入——全程围绕「我要达成什么」做决策。 **① 拿到请求** — 先明确成功标准:什么算完成?需要获取什么信息、执行什么操作、达到什么结果?这是后续所有判断的锚点。 **② 选择起点** — 根据任务性质、平台特征、达成条件,选一个最可能直达的方式作为第一步去验证。需要操作页面、需要登录态、已知静态方式不可达的平台(小红书、微信公众号等)→ 直接用 `browser`。 **③ 过程校验** — 每一步的结果都是证据。用结果对照①的成功标准:路径在推进吗?结果的质量、相关度、量级是否指向目标可达?发现方向错了立即调整,不在同一方式上反复重试——搜索没命中不等于"还没找对方法",也可能是"目标不存在"。遇到弹窗、登录墙,先判断它是否真的挡住了目标:内容可能已在 DOM 中,交互只是展示手段。 **④ 完成判断** — 对照成功标准确认完成才停止;但也不为了"完整"过度操作、浪费代价。 ## 联网工具选择 确保信息真实性,一手信息优于二手。搜索引擎和聚合平台是**发现入口**,不是真伪的**证明**。 | 场景 | 工具 | |------|------| | 搜索摘要、关键词结果、发现信息来源 | **web_search** | | URL 已知,按 prompt 从页面提取信息 | **web_fetch**(直接传原始 URL;HTML 自动转成干净 Markdown,正文优先、链接绝对化) | | URL 已知,需要页面原始 HTML(meta、JSON-LD 等结构化字段) | **web_fetch** 加 `clean=false` | | 非公开内容,或已知静态层无效的平台(小红书、公众号等) | **browser**(直接,跳过静态层) | | 需要登录态、交互操作,或要像人一样在浏览器内自由导航探索 | **browser** | `web_search` / `web_fetch` 都不处理登录态。`browser` 不要求 URL 已知——可从任意入口出发,靠页面内搜索、点击、跳转找到目标。 ## browser 工具要点 action 级用法(observe / click / eval / record / replay 等的参数与语义)以 `browser` 工具自身的 schema 描述为准,此处不重复。schema 之外的判断准则: - 重复性流程(批量操作、定期取数)优先录制回放(record → replay),而非每次盲驱动。 - 收尾用 `close` 关闭自己开的标签页,保留用户原有标签页。 ### 程序化 vs GUI 交互 - **程序化**(navigate 构造 URL、eval 操作 DOM):快、精确,但对网站不是正常用户行为,可能触发反爬。 - **GUI 交互**(observe→click→type→scroll):网站不限制正常 UI 操作,确定性最高,但步骤多、慢。 根据对平台的了解灵活选择。GUI 交互也是有效探测:一次真实交互能观察站点实际行为(URL 模式、必需参数、跳转逻辑),为后续程序化操作提供依据;程序化受阻时它是可靠兜底。 **站点内交互产生的链接是可靠的**:通过卡片/条目/按钮等可交互单元自然到达的 URL,天然携带平台所需的完整上下文。手动构造的 URL 可能缺隐式必要参数,导致被拦截、错误页、触发反爬。提取 URL 时保留完整地址,不裁剪参数。 ### 媒体与视频 - 内容在图片里时,用 `eval` 从 DOM 直接拿图片 URL,比全页截图精准。公开资源直接下载本地读取;需登录态的资源才在浏览器内 navigate + screenshot。 - 提图前先 `scroll` 到底触发懒加载,否则部分图片未加载。 - 视频:用 `eval` 操控 `