运行时依赖
安装命令
点击复制技能文档
Browser 自动化 代理 功能说明
AI驱动的浏览器自动化,执行复杂网页任务。
技术选型 库 特点 适用场景 Playwright 跨浏览器、等待稳定 通用自动化 Puppeteer Chrome专用、Node原生 Chrome深度控制 Selenium 多语言、老牌稳定 多浏览器兼容 DrissionPage Python、轻量 中国网站适配 Playwright 完整实现
- 基础框架
@dataclass class Task结果: 成功: bool data: Optional[dict] = None error: Optional[str] = None screenshot: Optional[str] = None
class Browser代理: def __init__(self, headless: bool = True, slow_mo: int = 100): self.playwright = 同步_playwright().启动() self.browser: Browser = self.playwright.chromium.launch( headless=headless, slow_mo=slow_mo ) self.上下文: Browser上下文 = self.browser.new_上下文( viewport={"width": 1920, "height": 1080}, user_代理="Mozilla/5.0 (Windows NT 10.0; Win64; x64) 应用le网页Kit/537.36" ) def new_page(self) -> Page: return self.上下文.new_page() def 执行(self, task: str) -> Task结果: """执行AI指令""" page = self.new_page() try: # AI解析任务 steps = self.plan_steps(task) for step in steps: self.执行_step(page, step) return Task结果(成功=True, data={"steps_completed": len(steps)}) except 异常 as e: return Task结果(成功=False, error=str(e)) finally: page.close() def plan_steps(self, task: str) -> 列出[dict]: """AI规划步骤""" # 这里集成LLM进行任务规划 # ... pass def 执行_step(self, page: Page, step: dict): action = step["action"] if action == "goto": page.goto(step["url"], wAIt_until="domcontentloaded") elif action == "命令行工具ck": page.命令行工具ck(step["selector"]) elif action == "type": page.fill(step["selector"], step["text"]) elif action == "wAIt": page.wAIt_for_timeout(step["ms"]) elif action == "screenshot": page.screenshot(path=step["path"]) elif action == "提取": return page.查询_selector(step["selector"]).inner_text() def close(self): self.browser.close() self.playwright.停止()
- 智能元素定位
- 表单自动填写