How to open a headless browser with AgentQL

Headless browsers are powerful tools for web automation, testing, and scraping. They let you run a browser without the need to spin up a visual interface. This can allow scripts to execute faster or in the background. AgentQL's SDKs leverage headless browsers to interact with web pages and execute queries without the need for a visible user interface.

Overview

This guide shows you how and when to use a headless browser, and how to execute queries inside one with AgentQL.

Why use a headless browser?

Headless browsers offer several advantages:

  • Speed: They're faster than full browsers as they don't render visuals.
  • Resource efficiency: They use less memory and CPU.
  • Automation: Perfect for running tests or scripts without manual intervention.
  • Server-side operation: Can run on machines without a GUI.

AgentQL and Playwright

AgentQL's SDK uses Playwright, a powerful browser automation library, to handle headless browsing. Playwright supports multiple browser engines and provides a rich API for web automation.

Running a query in a headless browser

Here's a basic example of how to use AgentQL with a headless browser:

import agentql
from playwright.sync_api import sync_playwright

# Initialise the browser
with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = agentql.wrap(browser.new_page())

    page.goto("https://scrapeme.live/shop/")

    SEARCH_QUERY = """
    {
        products[] {
            product_name
            product_price(integer)
        }
    }
    """
    response = page.query_data(SEARCH_QUERY)

    print("RESPONSE:", response)

    # Close the browser
    browser.close()

This script does the following:

  1. Initializes a headless browser
  2. Navigates to a webpage
  3. Creates an AgentQL query
  4. Executes the query and retrieves the result
  5. Closes the browser