返回顶部
s

stealthy-auto-browse隐身自动浏览

Browser automation that passes CreepJS, BrowserScan, Pixelscan, and Cloudflare — zero CDP exposure, OS-level input, persistent fingerprints. Use when standard browser skills get 403s or CAPTCHAs.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V v1.8.0
安全检测
已通过
2,877
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

stealthy-auto-browse

stealthy-auto-browse

Docker中的隐身浏览器。Camoufox(定制Firefox)——零CDP信号。通过PyAutoGUI实现操作系统级鼠标/键盘操作——无法检测。可绕过Cloudflare、DataDome、PerimeterX、Akamai。

安装、配置和容器设置请参见references/setup.md

使用场景

  • - 网站有机器人检测(Cloudflare、验证码、DataDome)
  • 其他浏览器技能返回403或被拦截
  • 需要保持登录会话不被封禁

不使用场景

  • - 无机器人防护——使用curl或WebFetch
  • 仅需静态HTML——使用curl

设置

API应已运行。设置基础URL:

bash
export STEALTHYAUTOBROWSE_URL=http://localhost:8080

验证: curl $STEALTHYAUTOBROWSE_URL/health 返回 ok。

HTTP API

所有命令:POST $STEALTHYAUTOBROWSE_URL/,JSON主体 {action: name, ...params}。

如果服务器设置了 AUTH_TOKEN,每个请求(/health 除外)都需要包含:

Authorization: Bearer

或作为查询参数传递:?auth_token=(适用于无法设置标头的MCP客户端)。

在单实例模式下,请求自动序列化——一次只运行一个,其余排队。

每个响应:

json
{
success: true,
timestamp: 1234567890.123,
data: { ... },
error: 仅当success为false时存在
}

两种输入模式

系统输入——无法检测

使用PyAutoGUI实现真实操作系统级事件。浏览器不知道被自动化。

  • - systemclick —— 以类人曲线移动鼠标,然后点击(视口x,y坐标)
  • mousemove —— 移动鼠标但不点击(悬停菜单、工具提示)
  • mouseclick —— 在指定位置或当前位置点击(无平滑移动)
  • systemtype —— 以随机延迟逐字符输入文本
  • send_key —— 按下按键或组合键(enter、tab、ctrl+a)
  • scroll —— 鼠标滚轮滚动(负数=向下)

从 getinteractiveelements 获取视口坐标。

Playwright输入——可检测但方便

使用Playwright的DOM事件。更快,使用CSS选择器/XPath,但可检测。

  • - click —— 按选择器点击
  • fill —— 立即设置输入值
  • type —— 逐字符输入到元素中

使用哪种

  • - 有机器人检测? 始终使用系统输入。
  • 无检测? Playwright输入即可。
  • 隐身填写表单? 使用 systemclick 聚焦,然后 systemtype。

典型工作流程

  1. 1. goto → 加载页面
  2. gettext → 读取页面内容
  3. getinteractiveelements → 查找带x,y坐标的按钮/输入框
  4. systemclick / systemtype / sendkey → 交互
  5. waitforelement / waitfortext → 等待结果
  6. get_text → 验证

操作参考

导航

json
{action: goto, url: https://example.com}
{action: goto, url: https://example.com, wait_until: networkidle}
{action: goto, url: https://example.com, referer: https://google.com/search?q=stuff}
{action: refresh}
{action: refresh, wait_until: networkidle}

wait_until:domcontentloaded(默认)、load、networkidle。
referer:设置HTTP Referer标头(用于检查引荐来源的网站)。

响应:{url: ..., title: ...}

系统输入(无法检测)

json
{action: system_click, x: 500, y: 300}
{action: system_click, x: 500, y: 300, duration: 0.5}
{action: mouse_move, x: 500, y: 300}
{action: mouse_click, x: 500, y: 300}
{action: mouse_click}
{action: system_type, text: hello world, interval: 0.08}
{action: send_key, key: enter}
{action: send_key, key: ctrl+a}
{action: scroll, amount: -3}
{action: scroll, amount: -3, x: 500, y: 300}

Playwright输入(可检测)

json
{action: click, selector: #submit-btn}
{action: click, selector: xpath=//button[@id=submit]}
{action: fill, selector: input[name=email], value: user@example.com}
{action: type, selector: #search, text: query, delay: 0.05}

页面检查

json
{action: getinteractiveelements}
{action: getinteractiveelements, visible_only: true}
{action: get_text}
{action: get_html}
{action: eval, expression: document.title}
{action: eval, expression: document.querySelectorAll(a).length}

getinteractiveelements 返回所有按钮、链接、输入框,包含 x、y、w、h、text、selector、visible。直接将 x、y 传递给 system_click。

get_text 返回可见页面文本(截断至10,000字符)。导航后首先调用此方法。

截图

bash

浏览器视口


curl -s $STEALTHYAUTOBROWSE_URL/screenshot/browser?whLargest=512 -o screenshot.png

全桌面

curl -s $STEALTHYAUTOBROWSE_URL/screenshot/desktop?whLargest=512 -o desktop.png

调整大小参数:whLargest=512(推荐)、width=800、height=300、width=400&height=400。

通过操作(用于脚本模式——返回带 output_id 的base64):

json
{action: save_screenshot}
{action: save_screenshot, type: desktop}
{action: savescreenshot, outputid: my_screenshot, whLargest: 512}
{action: save_screenshot, path: /output/page.png}

等待条件

使用这些代替 sleep。

json
{action: waitforelement, selector: #results, state: visible, timeout: 10}
{action: waitfortext, text: Search results, timeout: 10}
{action: waitforurl, url: /dashboard, timeout: 10}
{action: waitfornetwork_idle, timeout: 30}

state:visible(默认)、hidden、attached、detached。

标签页

json
{action: list_tabs}
{action: new_tab, url: https://example.com}
{action: switch_tab, index: 0}
{action: close_tab, index: 1}

对话框

在触发对话框的操作之前调用 handle_dialog。默认情况下对话框会自动接受。

json
{action: handle_dialog, accept: true}
{action: handle_dialog, accept: false}
{action: handle_dialog, accept: true, text: prompt response}
{action: getlastdialog}

Cookie

json
{action: get_cookies}
{action: get_cookies, urls: [https://example.com]}
{action: set_cookie, name: session, value: abc, url: https://example.com}
{action: delete_cookies}

存储

json
{action: get_storage, type: local}
{action: set_storage, type: local, key: theme, value: dark}
{action: clear_storage, type: local}

type:local(默认)或 session

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 stealthy-auto-browse-1776372391 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 stealthy-auto-browse-1776372391 技能

通过命令行安装

skillhub install stealthy-auto-browse-1776372391

下载

⬇ 下载 stealthy-auto-browse vv1.8.0(免费)

文件大小: 10.77 KB | 发布时间: 2026-4-17 14:36

vv1.8.0 最新 2026-4-17 14:36
- Added a new script: scripts/websearch.py.
- Introduces new functionality related to web searching.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部