用途
Playwright 浏览器自动化用于模拟真实用户操作,适用于自动化爬虫、数据采集、表单填写、UI 测试等需要浏览器自动化的场景。它无需人工干预,完全自动,适合定时任务(cron)和生产环境部署。
主要能力
- 无头浏览器模式(后台运行)
- 数据采集和爬虫
- 表单自动填写
- UI 自动化测试
- 截图和 PDF 生成
与 browser tool 的区别:browser tool 需要手动打开浏览器、需要用户参与、不适合定时任务;Playwright 完全自动、适合定时任务、可后台运行,但需要安装,调试需依赖日志。
安装
# 安装 Python 包
pip install playwright
# 安装浏览器(Chromium)
playwright install chromium
# 验证安装
python3 -c "from playwright.sync_api import sync_playwright; print('✅ 安装成功')"
使用方式
基本使用
同步 API(简单任务):
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True) # headless=False 显示浏览器
page = browser.new_page()
page.goto('https://example.com')
print(page.title())
browser.close()
异步 API(推荐,性能更好):
import asyncio
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
await page.goto('https://example.com')
title = await page.title()
print(title)
await browser.close()
asyncio.run(main())
常用功能
页面导航、元素定位(CSS、XPath、文本、组合选择器)、提取数据、表单操作、等待策略、滚动和交互、截图和 PDF、处理弹窗,均有对应代码示例。
反爬策略
User-Agent 轮换、随机延迟、Cookie 保存和加载、代理设置、浏览器上下文隔离。
调试技巧
显示浏览器(headless=False、slow_mo)、截图调试、查看日志(console、request、response)、Playwright Inspector(PWDEBUG=1)。
资源清理原则(强制)
所有涉及浏览器的 cron 任务完成后,必须自动关闭 Chrome/Chromium 进程:
import subprocess
# 方式1: 显式关闭浏览器
await browser.close()
await context.close()
# 方式2: 强制清理残留进程(推荐在脚本结束时调用)
subprocess.run(['pkill', '-f', 'chrome'], capture_output=True)
subprocess.run(['pkill', '-f', 'chromium'], capture_output=True)
原因:避免内存泄漏和资源占用,防止 Gateway CPU 100% 过载。
适用场景
使用 Playwright:定时监控(cron 任务)、大规模数据采集、无人值守运行、生产环境部署。
使用 browser tool:交互式调试、需要人工决策的操作、一次性任务、绕过复杂验证码。
限制与常见问题
- 验证码:可使用打码平台、手动处理(暂停等待用户输入)、降级用 browser tool 让用户手动操作。
- 元素找不到:检查是否在 iframe 中(需要切换)、是否动态加载(需要等待)、选择器是否正确。
- 提高性能:使用异步 API、并发多个页面、减少不必要的等待。
与 OpenClaw 集成
可在 healthcare-monitor 中使用,与 browser tool 配合:Playwright 用于日常自动监控,browser tool 用于调试和异常处理。
资源
- 官方文档: https://playwright.dev/python/
- API 参考: https://playwright.dev/python/docs/api/class-playwright
- 示例代码: ~/clawd/skills/playwright-automation/examples/
快速命令
# 安装
pip install playwright && playwright install chromium
# 运行脚本
python3 script.py
# 调试模式
PWDEBUG=1 python3 script.py
# 查看版本
playwright --version