Files
my-project/config/openclaw/skills/desktop-browser/SKILL.md
T

4.0 KiB

name, description
name description
desktop-browser 通过真实桌面操作浏览器自动化,包含反检测模式。使用场景:(1) 需要登录或 cookie 认证的网站操作 (2) 需要保持会话状态的浏览器操作 (3) OpenClaw 浏览器失败时的备选方案 (4) 需要操作桌面应用的场景 (5) 反检测浏览器操作

Desktop Browser Skill

通过 X11 连接真实桌面,操作 Chrome/Chromium 浏览器进行自动化。

快速开始

环境要求

# 安装依赖
pip install pyautogui pillow gnome-screenshot

# 复制 Xauthority (首次需要)
cp /home/yh6788/.Xauthority /root/

基础操作

import pyautogui
import os

# 设置环境变量
os.environ['DISPLAY'] = ':0'
os.environ['XAUTHORITY'] = '/home/yh6788/.Xauthority'

# 截图
img = pyautogui.screenshot('/path/to/screenshot.png')

# 点击坐标 (需先获取坐标)
pyautogui.click(x, y)

# 输入文字
pyautogui.typewrite("text", interval=0.1)

# 快捷键
pyautogui.hotkey('ctrl', 't')  # 新标签页
pyautogui.hotkey('ctrl', 'w')  # 关闭标签页

反检测浏览器 (Camoufox)

什么是 Camoufox

Camoufox 是基于 Firefox 的反检测浏览器,在 C++ 级别进行指纹伪装,能绕过:

  • Cloudflare Turnstile
  • Datadome
  • Airbnb
  • Yelp
  • 其他反爬虫机制

使用 Camoufox

方式1: 通过命令行调用 Camoufox

# 进入 pybox 容器
distrobox-enter pybox

# 使用 Camoufox 打开网站
python3.14 -m camoufox open https://example.com

方式2: 桌面浏览器改用 Camoufox

  1. 安装 Camoufox: distrobox-enter pybox -- python3.14 -m pip install camoufox
  2. 桌面浏览器使用 Camoufox 替代 Chrome

Camoufox vs 普通浏览器

特性 Desktop Browser (普通) Camoufox (反检测)
反指纹 ❌ ✅ C++级别
Cloudflare ❌ ✅ 自动绕过
代理支持 系统代理 可配置 Residential
速度 快 稍慢

何时用反检测

  • OpenClaw 浏览器被检测
  • 遇到 Cloudflare 挑战
  • 目标网站反爬严格
  • 普通浏览器无法访问

启动反检测环境

# 启动 pybox 容器
distrobox start pybox

# 进入容器
distrobox-enter pybox

# 安装 Camoufox (首次)
python3.14 -m pip install camoufox

注意事项

  • Camoufox 需要在 pybox 中运行
  • 首次运行会自动下载 (~700MB)
  • 建议使用 residential 代理 (数据中心IP容易被封)

获取坐标

方法1: 手动获取

  1. 截取屏幕
  2. 用图片查看器查看坐标
  3. 记录需要点击的位置

方法2: 打印鼠标位置

import pyautogui
while True:
    print(pyautogui.position())
    time.sleep(1)

常用脚本

打开浏览器并操作

import pyautogui
import time

os.environ['DISPLAY'] = ':0'
os.environ['XAUTHORITY'] = '/home/yh6788/.Xauthority'

# 点击任务栏 Chrome 图标 (位置需根据实际情况调整)
pyautogui.click(100, 1050)  # 假设 Chrome 在左下角
time.sleep(2)

# 新标签页
pyautogui.hotkey('ctrl', 't')
time.sleep(0.5)

# 输入网址
pyautogui.typewrite("https://www.example.com", interval=0.05)
pyautogui.press('enter')
time.sleep(3)

# 截图
pyautogui.screenshot('result.png')

自动登录

# 1. 截取登录界面
# 2. 点击用户名输入框
pyautogui.click(username_x, username_y)
pyautogui.typewrite("username", interval=0.1)

# 3. 点击密码输入框
pyautogui.click(password_x, password_y)
pyautogui.typewrite("password", interval=0.1)

# 4. 点击登录按钮或按回车
pyautogui.press('enter')

注意事项

  • 坐标需要根据屏幕分辨率调整 (当前: 1366x768)
  • 操作间隙添加 time.sleep() 等待页面加载
  • 敏感操作前先截图确认
  • XAUTHORITY 必须正确,否则无法连接桌面

故障排除

Xlib 认证错误

Xlib.error.DisplayConnectionError: Can't connect to display ":0"

解决:

cp /home/yh6788/.Xauthority /root/
export XAUTHORITY=/home/yh6788/.Xauthority

坐标不准

  • 截图后用图像查看器确认坐标
  • 不同分辨率坐标不同