> ## Documentation Index
> Fetch the complete documentation index at: https://docs.plaisolutions.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Browser Tool

> Web scraping and browser automation with Firecrawl or Beautiful Soup

# Browser Tool

The Browser tool enables your agents to extract data from websites, perform web scraping, and interact with web pages. It supports multiple scraping engines including Firecrawl for advanced features or Beautiful Soup for simple HTML parsing.

<Note>
  This tool has **Default** status, meaning it's production-ready and available on all subscription plans.
</Note>

## Overview

The Browser tool transforms your agents into web scraping specialists capable of:

<CardGroup cols={2}>
  <Card title="Web Scraping" icon="spider">
    Extract data from any publicly accessible website
  </Card>

  <Card title="JavaScript Rendering" icon="code">
    Handle dynamic content and single-page applications with Firecrawl
  </Card>

  <Card title="Flexible Extraction" icon="server">
    Extract content in Markdown or HTML formats
  </Card>

  <Card title="Multiple Engines" icon="settings">
    Choose between Firecrawl API and Beautiful Soup engines
  </Card>
</CardGroup>

## Configuration Parameters

<ParamField path="scraper" type="select" required>
  The scraping engine to use for web data extraction
  <br />**Options**:

  * `firecrawl` - Professional scraping service with JavaScript rendering and Markdown/HTML extraction
  * `beautifulsoup` - Python-based HTML parsing for simple text extraction
</ParamField>

<ParamField path="render" type="boolean" default="false">
  Enable JavaScript rendering for dynamic content (Firecrawl only)
  <br />When enabled, extracts both Markdown and HTML formats. When disabled, extracts Markdown only.
  <br />**Note**: This parameter is ignored when using Beautiful Soup.
</ParamField>

## Setup Instructions

<Steps>
  <Step title="Navigate to Tools">
    Go to the **Tools** section in your project dashboard
  </Step>

  <Step title="Create Browser Tool">
    Click **Create Tool** and select **Browser**
  </Step>

  <Step title="Select Scraper Engine">
    Choose between Firecrawl API for advanced features or Beautiful Soup for simple scraping
  </Step>

  <Step title="Configure JavaScript Rendering">
    If using Firecrawl, decide whether to enable the `render` parameter for JavaScript rendering
  </Step>

  <Step title="Test Scraping">
    Use the test button to verify scraping functionality with a sample URL
  </Step>

  <Step title="Add to Agent">
    Assign this tool to your agents in agent settings
  </Step>
</Steps>

## Scraper Engines

### Firecrawl

Professional scraping service with JavaScript rendering capabilities:

<Tabs>
  <Tab title="Features">
    * **JavaScript Rendering**: Full browser rendering for dynamic content and SPAs
    * **Markdown Extraction**: Clean Markdown output from web pages
    * **HTML Extraction**: Raw HTML output when `render` is enabled
    * **Async Processing**: Webhook support for long-running scraping jobs
    * **API Key Required**: Requires Firecrawl API key configuration
  </Tab>

  <Tab title="Best For">
    * JavaScript-heavy websites and single-page applications
    * Dynamic content that loads after page render
    * E-commerce sites with client-side rendering
    * Modern web applications
    * Content requiring clean Markdown format
    * Sites with complex interactive elements
  </Tab>

  <Tab title="Configuration">
    ```json theme={null}
    {
      "scraper": "firecrawl",
      "render": true
    }
    ```

    **With rendering disabled (Markdown only):**

    ```json theme={null}
    {
      "scraper": "firecrawl",
      "render": false
    }
    ```
  </Tab>
</Tabs>

### Beautiful Soup

Python-based HTML parsing for lightweight text extraction:

<Tabs>
  <Tab title="Features">
    * **Fast Processing**: Lightweight HTML parsing
    * **Simple Text Extraction**: Extracts plain text from HTML
    * **No API Key**: No external dependencies or authentication required
    * **Local Processing**: Data processed internally without external calls
    * **Low Overhead**: Minimal resource usage
  </Tab>

  <Tab title="Best For">
    * Simple static HTML pages
    * Plain text extraction needs
    * Development and testing
    * Low-volume scraping
    * Internal tools and quick data extraction
    * Sites without JavaScript requirements
  </Tab>

  <Tab title="Configuration">
    ```json theme={null}
    {
      "scraper": "beautifulsoup"
    }
    ```

    **Note:** The `render` parameter is ignored when using Beautiful Soup as it only performs basic HTML parsing.
  </Tab>
</Tabs>

## Best Practices

### Choosing the Right Scraper

* **Use Firecrawl with `render: true`** for JavaScript-heavy sites, single-page applications, or when you need clean Markdown output
* **Use Firecrawl with `render: false`** for faster scraping when only Markdown format is needed
* **Use Beautiful Soup** for simple static HTML pages where speed and no external API calls are priorities

### Ethical Scraping

<Warning>
  **Respect Website Terms**: Always review and comply with website terms of service and robots.txt files before scraping.
</Warning>

* **Respect Rate Limits**: Don't overwhelm servers with requests
* **Use Public Data**: Only scrape publicly accessible information
* **Attribution**: Credit sources when republishing scraped content
* **Privacy Compliance**: Respect user privacy and data protection laws

## Compliance & Legal

### Data Protection

* **GDPR Compliance**: Handle EU personal data appropriately
* **CCPA Compliance**: Respect California privacy rights
* **Data Minimization**: Collect only necessary information
* **Secure Storage**: Protect scraped data appropriately
* **Access Controls**: Limit access to scraped data

### Copyright Considerations

* **Fair Use**: Understand fair use limitations
* **Attribution**: Provide proper source attribution
* **Commercial Use**: Review commercial usage rights
* **Content Licensing**: Respect content licensing terms
* **DMCA Compliance**: Handle takedown requests properly

## Next Steps

<CardGroup cols={2}>
  <Card title="Other Tools" icon="grid" href="/tools/overview">
    Explore other available tools
  </Card>

  <Card title="API Reference" icon="code" href="/api-reference/tools">
    View the tools API documentation
  </Card>
</CardGroup>
