View a markdown version of this page

Utilizzo AgentCore del browser con Playwright - Amazon Bedrock AgentCore

Utilizzo AgentCore del browser con Playwright

Puoi utilizzare il framework di automazione Playwright con lo strumento Browser:

Passaggio 1: installare le dipendenze

Crea una cartella di progetto (se non ne hai creata una prima) e installa i pacchetti richiesti:

mkdir agentcore-browser-quickstart cd agentcore-browser-quickstart python3 -m venv .venv source .venv/bin/activate
Nota

In Windows, usa: .venv\Scripts\activate

Installa i pacchetti richiesti:

pip install bedrock-agentcore playwright boto3 nest-asyncio

Questi pacchetti forniscono:

  • bedrock-agentcore: L'SDK per gli AgentCore strumenti di Amazon Bedrock, incluso Browser AgentCore

  • playwright: libreria Python per l'automazione dei browser

  • boto3: AWS SDK for Python (Boto3) per creare, configurare e gestire servizi AWS

  • nest-asyncio: consente l'esecuzione di loop di eventi asyncio all'interno di loop di eventi esistenti

Passaggio 2: controlla il browser con Playwright

È possibile utilizzare Browser direttamente senza un framework di agenti o un LLM. Ciò è utile quando si desidera il controllo programmatico sull'automazione del browser. Amazon Bedrock AgentCore fornisce l'integrazione con Playwright per l'automazione dei browser.

Esempio di Async Playwright

Crea un file denominato direct_browser_playwright.py e aggiungi il seguente codice:

from playwright.async_api import async_playwright, Playwright, BrowserType from bedrock_agentcore.tools.browser_client import browser_session import asyncio async def run(playwright: Playwright): # Create and maintain a browser session with browser_session('us-west-2') as client: # Get WebSocket URL and authentication headers ws_url, headers = client.generate_ws_headers() # Connect to the remote browser chromium: BrowserType = playwright.chromium browser = await chromium.connect_over_cdp( ws_url, headers=headers ) # Get the browser context and page context = browser.contexts[0] page = context.pages[0] try: # Navigate to a website await page.goto("https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/what-is-bedrock-agentcore.html") # Print the page title title = await page.title() print(f"Page title: {title}") # Keep the session alive for 2 minutes to allow viewing print("\n\nBrowser session is active. Check the AWS Console for live view.") await asyncio.sleep(120) finally: # Clean up resources await page.close() await browser.close() async def main(): async with async_playwright() as playwright: await run(playwright) # Run the async function if __name__ == "__main__": asyncio.run(main())

Esempio di sincronizzazione di Playwright con live view

In alternativa, puoi utilizzare l'API di sincronizzazione con il server live view integrato:

from playwright.sync_api import sync_playwright, Playwright, BrowserType from bedrock_agentcore.tools.browser_client import browser_session from browser_viewer import BrowserViewerServer import time def run(playwright: Playwright): # Create the browser session and keep it alive with browser_session('us-west-2') as client: ws_url, headers = client.generate_ws_headers() # Start viewer server viewer = BrowserViewerServer(client, port=8005) viewer_url = viewer.start(open_browser=True) # Connect using headers chromium: BrowserType = playwright.chromium browser = chromium.connect_over_cdp( ws_url, headers=headers ) context = browser.contexts[0] page = context.pages[0] try: page.goto("https://amazon.com/") print(page.title()) time.sleep(120) finally: page.close() browser.close() with sync_playwright() as playwright: run(playwright)

Esegui lo script

Esegui uno degli script:

python direct_browser_playwright.py

Output previsto

Dovresti vedere stampato il titolo della pagina (ad esempio,Page title: What is Amazon Bedrock AgentCore? - Amazon Bedrock AgentCore). Lo script mantiene attiva la sessione del browser per 2 minuti prima della chiusura.

Entrambi gli esempi:

  • Crea una sessione di browser gestita utilizzando Amazon Bedrock AgentCore Browser

  • Connect al browser Chrome remoto utilizzando il DevTools protocollo Chrome (CDP) di Playwright

  • Vai alla AgentCore documentazione e stampa il titolo della pagina

  • Mantieni attiva la sessione per 2 minuti, così potrai visualizzarla nella AWS console

  • Chiudi correttamente il browser e pulisci le risorse