Playwright 是一个自动化库,用于跨浏览器的 Web 自动化。它由 Microsoft 开发,支持多种编程语言,包括 Python。Playwright 提供了自动化的浏览器环境,可以用于端到端的测试、爬虫、自动化脚本等。
Playwright 的架构设计得非常模块化,主要包括以下几个核心组件:
在 Python 中,可以使用 pip 来安装 Playwright:
pip install playwright
安装完成后,还需要运行以下命令来自动下载浏览器:
playwright install
以下是一个简单的 Playwright Python 脚本示例,它打开一个页面,点击一个元素,并获取页面上的文本。
from playwright.sync_api import sync_playwright
# 使用 sync API
with sync_playwright() as p:
# 启动浏览器
browser = p.chromium.launch(headless=False) # headless=False 表示显示浏览器界面
page = browser.new_page()
# 打开页面
page.goto('https://www.example.com')
# 点击一个元素
page.click('text="Click me"')
# 获取页面上的文本
text = page.text_content('h1')
print(text)
# 关闭浏览器
browser.close()
在这个例子中,我们首先导入了 sync_playwright
,它提供了同步 API。然后,我们启动了一个 Chrome 浏览器实例,并打开了一个新页面。接着,我们导航到指定的 URL,点击了一个文本为 “Click me” 的元素,并获取了 标签的文本内容。
Playwright 也支持异步 API,使用 async
和 await
关键字,以下是异步 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=False)
page = await browser.new_page()
await page.goto('https://www.example.com')
await page.click('text="Click me"')
text = await page.text_content('h1')
print(text)
await browser.close()
asyncio.run(main())
在这个例子中,我们使用了 async_playwright
和异步函数 main
。我们使用 await
来等待异步操作完成。
希望这个解释能帮助你更好地理解 Playwright 的架构和用法。