🌐 browser-pilot(增强版)
✅ 状态:增强版已上线,功能完整。
功能
基础操作
- 导航 (navigate) - 访问 URL
- 截图 (screenshot) - 页面截图(支持整页)
- 点击 (click) - 点击元素
- 填写 (fill) - 填写表单
- 提取文本 (extract_text) - 提取页面/元素文本
- 提取 HTML (extract_html) - 提取页面/元素 HTML
- 等待 (wait) - 等待指定时间
增强功能(新增)
- 文件上传 (upload_file) - 上传文件到表单
- 文件下载 (download_file) - 下载文件
- 多标签页 (switch_tab/new_tab/close_tab) - 标签页管理
浏览器支持
- Chromium(Chrome)
- Firefox
- WebKit(Safari)
反检测
- 隐藏 webdriver 特征
- 隐藏 automation 特征
- 随机 User-Agent
- 模拟人类操作延迟
使用方法
通过技能调用
用户说"打开网页"、"截图"、"自动化操作"时自动触发。
直接脚本调用
# 健康检查
python3 scripts/browse.py --check
# 访问网页
python3 scripts/browse.py --url "https://example.com"
# 访问网页并截图
python3 scripts/browse.py --url "https://example.com" --screenshot
# 访问网页并提取文本
python3 scripts/browse.py --url "https://example.com" --extract "h1"
# 有头模式(显示浏览器窗口)
python3 scripts/browse.py --url "https://example.com" --headed
# 自定义延迟
python3 scripts/browse.py --url "https://example.com" --slow-mo 500
Python API 调用
from browse import BrowserPilot
with BrowserPilot(headless=True, slow_mo=100) as pilot:
# 启动
pilot.start("chromium")
# 导航
pilot.navigate("https://example.com")
# 截图
pilot.screenshot("output.png")
# 点击
pilot.click("#login-button")
# 填写表单
pilot.fill("#username", "myuser")
pilot.fill("#password", "mypass")
# 提取文本
text = pilot.extract_text("h1")
print(text["text"])
# 关闭(with 语句自动关闭)
技术实现
基于 playwright Python 库实现,提供同步 API。
安装
# 安装 playwright
pip install playwright
# 安装浏览器
playwright install
限制
- 复杂验证码(CAPTCHA)无法自动破解,需人工干预
- 部分网站使用高级 Bot 检测(如 Cloudflare Turnstile),可能触发拦截
- 无头模式默认开启;如需可见浏览器,传入
headless=False - 下载文件依赖浏览器配置的下载路径
已支持功能
- ✅ 文件上传(
input[type=file]元素) - ✅ 文件下载(等待下载事件)
- ✅ 多标签页管理(open/switch/close tab)
- ✅ 反检测(stealth 模式,随机 User-Agent,人类速度)
- ✅ 截图 / 全页截图
- ✅ 表单填写 / 点击 / 滚动 / 悬停
- ✅ 文本提取 / HTML 提取
- ✅ 等待元素出现
输出目录
截图和输出文件保存到:__LEGACY_HOME__/.openclaw/output/browser/