Chrome DevTools Web Research

通过远程调试Chrome实现真实网站信息提取与跨平台验证。

已扫描
适合谁
需要进行网络事实核查的研究人员、关注社交媒体动态的舆情分析者
不适合谁
无法访问外部网络的用户、不熟悉Chrome远程调试设置的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @hackerchai/chrome-devtools-web-research

Skill 说明

命令、参数、文件名以原文为准

Chrome DevTools Web Research

通过 mcporter 使用 chrome-devtools-mcp@latest 驱动 Chrome,检查真实页面,并从动态网站中提取结构化发现结果。

默认优先使用 MCP。不要等待用户提醒你使用它。

如需具体的错误描述和修复路径,请阅读 references/troubleshooting.md

用户设置指引

如果用户需要在 Chrome 中启用标签页访问,请提供以下简明设置流程:

  1. 打开 chrome://inspect/#remote-debugging
  2. 将其开启
  3. 完成 —— 此时代理即可通过 Chrome DevTools MCP 查看用户的标签页、Cookies、登录信息和页面状态

明确告知用户:此功能底层使用 Chrome DevTools MCP无需安装浏览器扩展

快速开始

  1. 确认 MCP 服务器可用。
  2. 使用 chrome-devtools.new_page 打开目标页面。
  3. 截取快照并从可访问性树中读取可见结构。
  4. 根据需要进行导航、点击、填写或切换标签页。
  5. 在多个来源之间交叉验证重要声明。
  6. 搜索任务完成后立即关闭页面。
  7. 按来源质量总结,而非页面数量。

核心命令

mcporter list --output json
mcporter call chrome-devtools.new_page --args '{"url":"https://example.com"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json
mcporter call chrome-devtools.click --args '{"uid":"<tab_uid>"}' --output json
mcporter call chrome-devtools.navigate_page --args '{"url":"https://example.com/next"}' --output json
mcporter call chrome-devtools.fill --args '{"uid":"<input_uid>","value":"query text"}' --output json
mcporter call chrome-devtools.press_key --args '{"key":"Enter"}' --output json
mcporter call chrome-devtools.close_page --args '{}' --output json

工作流程

默认操作规则

  1. 始终优先尝试使用 MCP,通过 mcporter + chrome-devtools
  2. 任务涉及浏览或研究时主动开始搜索
  3. 仅当 Chrome 侧访问失败时才停止并请求帮助
  4. 若设置或访问失败,提示用户检查 Chrome,特别是远程调试 / 检查功能是否开启,然后重试。
  5. 任务完成后立即关闭页面,不再需要时及时释放资源。

失败与重试策略

首次 MCP/浏览器失败后不应放弃。

请参考 references/troubleshooting.md 获取具体错误类别、面向用户的表述方式及修复步骤。

严格遵循以下重试顺序:

  1. 如果错误看起来是临时性的,立即重试同一 MCP 命令一次
  2. 若仍失败,重新运行 mcporter list --output json,确认 chrome-devtools 是否仍在列表中。
  3. 若服务器存在,尝试最小下一步操作:

- 使用 chrome-devtools.new_page 重新打开页面,

- 或重新执行 chrome-devtools.take_snapshot

- 或重新执行单个点击/填写/导航操作。

  1. 若 Chrome 本身无法连接,明确告知用户检查 Chrome 的远程调试或 inspect 功能,之后再重试。
  2. 若 Google 因验证码、同意墙或反机器人机制被阻拦,不要停滞等待。记录 Google 被阻拦的情况,继续前往 X,然后 Reddit
  3. 仅当浏览器桥接明显损坏且必须用户介入时,才停止流程。

实用原则:优先采用 一次立即重试 + 一次环境检查 + 一次恢复尝试。避免无限循环。

默认搜索策略

若用户未指定网站、平台或搜索引擎,默认按以下顺序执行该链路

  1. Google 第一
  2. X 第二
  3. Reddit 第三

将此视为标准搜索链路,而非可选建议。

链路的必要行为:

  • 以 Google 开始:用于广泛发现、主要报道链以及最可能的主次来源。
  • 接着检查 X:获取实时传播、最新声明、引用帖链、矛盾点和突发更新。
  • 最后查看 Reddit:追踪社区来源、浮现的链接,以及可能揭示原始信息线索的讨论。
  • 主动执行:不要等待用户逐个要求每个平台。
  • 即使用户仅说“搜索这个”,也应执行该链路,除非其明确限制范围。
  • 若某一来源被阻拦、不可用或价值过低,应继续下一来源,而非中断。

最低可接受的默认序列:

  1. 打开针对查询的 Google 搜索结果
  2. 至少检查一个新鲜的快照
  3. 打开针对相同查询的 X 搜索
  4. 至少检查一个新鲜的快照
  5. 打开针对相同查询的 Reddit 搜索
  6. 至少检查一个新鲜的快照
  7. 然后基于整条链路进行总结

若 Google 因机器人挑战或同意墙被阻拦,应报告该障碍,标记 Google 阶段已阻拦,并不等待用户确认,直接进入 X → Reddit

此默认策略适用于开放式网络研究。若用户明确指定其他网站、搜索引擎或平台,则应遵循其指定内容。

1. 确认 MCP 访问权限

运行以下命令:

mcporter list --output json

期望看到一个使用类似以下传输方式的 chrome-devtools 服务:

STDIO npx chrome-devtools-mcp@latest --autoConnect

mcporter 缺失,请协助用户先安装。若 chrome-devtools MCP 服务缺失,请引导用户配置或安装,而非停留在模糊错误上。

实际安装/修复流程如下:

npm i -g mcporter
mcporter list

若 Chrome DevTools MCP 尚未就绪,请指导用户设置或重新连接 mcporter 使用的服务器,然后重复运行 mcporter list,直到 chrome-devtools 出现。

不要询问是否应使用 MCP。若可用,立即开始。

2. 直接打开目标页面

尽可能优先使用直接 URL。

mcporter call chrome-devtools.new_page --args '{"url":"https://target-site.example/path"}' --output json

适用于直接导航的场景:

  • 搜索结果页面
  • 经过滤的 URL
  • 直接跳转至文章/帖子/文档/问题的深层链接
  • 更适合直接打开而非手动复现的动态应用路由

如果网站支持 URL 查询参数,应优先使用查询参数,而非反复修改脆弱的页面控件。

2.5 完成后及时关闭页面

不要长时间保留研究用的标签页。

在从页面提取所需信息,或完成一次搜索环节后,若不再需要该页面进行对比,应立即关闭。

mcporter call chrome-devtools.close_page --args '{}' --output json

实用原则:

  • 打开页面
  • 检查 / 交互 / 截取快照
  • 记录发现
  • 该环节完成后立即关闭页面

进行多源研究时,仅保留最少数量的活跃页面。

3. 查看快照,而非像素图像

每次导航或交互后,务必获取最新快照:

mcporter call chrome-devtools.take_snapshot --args '{}' --output json

重点关注:

  • articlelinkbuttonheadingtextboxcomboboxtabdialog
  • 作者、时间戳、账号名、标题、标签、计数
  • 指向原始报道或文档的外部链接
  • 登录墙、内容对等标识、赞助内容或部分内容未加载的迹象

仅当布局本身重要时才使用截图。

4. 交互需谨慎

使用最小且可靠的交互动作:

  • navigate_page:用于直接更改 URL
  • click:用于标签、筛选器、菜单、分页控件
  • fill + press_key:用于搜索框和表单
  • select_page:当有多个标签页/页面打开时使用

每次发生有意义的状态变化后,立即再次截取快照。

5. 区分信息来源质量

将发现按以下类别归类:

  • 一级 / 官方来源:原始发布者、官方文档、组织官网、第一方仪表板
  • 二级报道:媒体、分析师、聚合账号,引用了具体来源的报道
  • 三级讨论:评论、粉丝账号、转发、AI 回复、无来源声明的内容

同一说法的重复传播视为一条信息流,而非多重验证。

6. 在当前页面外交叉验证

若用户需要更高置信度,可结合浏览器 MCP 的发现与其他方法:

  • web_search:用于发现、扩展来源,查找外部报道
  • web_fetch:当页面 URL 出现且只需轻量级提取时,自动获取可读内容
  • agent-browser:在有帮助时用于并行页面检查
  • curl:当 fetch 式提取不可用或不足时作为备选方案

使用浏览器处理实时状态与交互。当任务中出现普通网页链接时,优先尝试 web_fetch 进行快速可读提取;若不可用或不够,再退回到 curl 以获取原始数据或自定义解析。

7. 撰写总结

当页面包含相互矛盾的说法时,采用以下结构:

  • 当前最佳答案
  • 该页面/网站所陈述的内容
  • 其他来源的说法
  • 分歧所在
  • 最可信的来源
  • 置信度 / 局限性说明

良好表述示例:

  • “当前页面显示 X,而二级报道则倾向于 Y。”
  • “多数帖子均源自同一条报道链,应视为单一传闻流。”
  • “浏览器可见证据支持 A,但尚缺一级来源的确认。”

针对特定网站的注意事项

社交平台

  • 使用平台原生筛选功能,如 热门最新人物媒体、子版块排序或线程排序,以区分主流叙事与新发讨论
  • 引用前检查是否为戏仿账号或标注账号
  • 将引用帖链、转发风暴、复制的 Reddit 评论视为传播现象,而非独立信源
  • 平台内 AI 助手回复有助于梳理传闻主题,但不能作为一级证据
  • 在 Reddit 上,优先关注链接回原始报道的帖子、提供溯源上下文的评论,以及多个用户共同追踪同一来源链的社区讨论

搜索引擎

  • 预期可能遇到机器人检测或验证码
  • 若被阻止,应切换到其他来源,而非假装已获取结果

文档 / 仪表板 / Web 应用

  • 优先使用直接深层链接
  • 快照通常足以完成结构化提取
  • 若内容隐藏于菜单中,逐个展开一个部分,每次展开后重新截取快照

实用建议

  • UI 语言可能不同;应更依赖结构、URL 和可识别实体,而非仅凭标签文字
  • 若页面仍在加载,稍作等待后重新截取快照
  • 若出现登录、订阅或反机器人障碍,应如实报告限制情况
  • 当研究过程中出现普通网页链接时,自动优先尝试 web_fetch 以实现快速可读提取;若不可用或不足,则退回到 curl
  • 当仅靠页面内容不足以支撑结论时,向外扩展使用 web_search,寻找佐证报道、官方公告或原始信息链
  • 若用户尚未配置好环境,优先提供最短启用路径:开启 Chrome 远程调试访问,然后验证 mcporterchrome-devtools 是否可用
  • 在笔记中保持审计轨迹:记录页面 URL、关键可见声明,以及每条声明所属的信息层级
  • 对开放式搜索,不要止步于 Google;默认的补全流程是 Google -> X -> Reddit,除非用户明确缩小范围
  • 遇到失败后应有纪律地重试;不要过早放弃浏览流程,也不要陷入无限重试循环
  • 每完成一次搜索或检查环节后,立即关闭页面

示例流程

通用网站检查

mcporter call chrome-devtools.new_page --args '{"url":"https://example.com"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json
mcporter call chrome-devtools.click --args '{"uid":"<relevant_tab_uid>"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json

默认搜索引擎 + 社交平台交叉验证流程

mcporter call chrome-devtools.new_page --args '{"url":"https://www.google.com/search?q=Finalissima%202026"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json
mcporter call chrome-devtools.close_page --args '{}' --output json
mcporter call chrome-devtools.new_page --args '{"url":"https://x.com/search?q=Finalissima%202026&src=typed_query&f=top"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json
mcporter call chrome-devtools.navigate_page --args '{"url":"https://x.com/search?q=Finalissima%202026&src=typed_query&f=live"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json
mcporter call chrome-devtools.close_page --args '{}' --output json
mcporter call chrome-devtools.new_page --args '{"url":"https://www.reddit.com/search/?q=Finalissima%202026"}' --output json
mcporter call chrome-devtools.take_snapshot --args '{}' --output json
mcporter call chrome-devtools.close_page --args '{}' --output json

输出标准

在汇报结果时,需明确区分以下内容:

  • 当前页面上实际可见的信息
  • 网站或账号所有者声明的内容
  • 其他来源报告的信息
  • 尚未核实的信息

若不同信息来源之间存在矛盾,请直接指出。

H
@hackerchai

已收录 1 个 Skill

相关推荐