--- name: desktop-browser description: 通过真实桌面操作浏览器自动化,包含反检测模式。使用场景:(1) 需要登录或 cookie 认证的网站操作 (2) 需要保持会话状态的浏览器操作 (3) OpenClaw 浏览器失败时的备选方案 (4) 需要操作桌面应用的场景 (5) 反检测浏览器操作 --- # Desktop Browser Skill 通过 X11 连接真实桌面,操作 Chrome/Chromium 浏览器进行自动化。 ## 快速开始 ### 环境要求 ```bash # 安装依赖 pip install pyautogui pillow gnome-screenshot # 复制 Xauthority (首次需要) cp /home/yh6788/.Xauthority /root/ ``` ### 基础操作 ```python 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** ```bash # 进入 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 挑战 - 目标网站反爬严格 - 普通浏览器无法访问 ### 启动反检测环境 ```bash # 启动 pybox 容器 distrobox start pybox # 进入容器 distrobox-enter pybox # 安装 Camoufox (首次) python3.14 -m pip install camoufox ``` ### 注意事项 - Camoufox 需要在 pybox 中运行 - 首次运行会自动下载 (~700MB) - 建议使用 residential 代理 (数据中心IP容易被封) ## 获取坐标 ### 方法1: 手动获取 1. 截取屏幕 2. 用图片查看器查看坐标 3. 记录需要点击的位置 ### 方法2: 打印鼠标位置 ```python import pyautogui while True: print(pyautogui.position()) time.sleep(1) ``` ## 常用脚本 ### 打开浏览器并操作 ```python 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') ``` ### 自动登录 ```python # 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" ``` 解决: ```bash cp /home/yh6788/.Xauthority /root/ export XAUTHORITY=/home/yh6788/.Xauthority ``` ### 坐标不准 - 截图后用图像查看器确认坐标 - 不同分辨率坐标不同