# Crawl the first 5 pages of the stripe API documentation
stripe_crawl_result = app.crawl_url(
    url="https://docs.stripe.com/api",
    params={
        "limit": 5,  # Only scrape the first 5 pages including the base-url
        "scrapeOptions": {
            "formats": ["markdown", "html", "links", "screenshot"]
        }
    }
)

```

When you specify multiple formats, each webpage’s data contains separate keys for each format’s content:

```python
stripe_crawl_result['data'][0].keys()

```

```text
dict_keys(['html', 'links', 'markdown', 'metadata', 'screenshot'])

```

The value of the `screenshot` key is a temporary link to a PNG file stored on Firecrawl’s servers and expires within 24 hours. Here is what it looks like for Stripe’s API documentation homepage:

```python
from IPython.display import Image

Image(stripe_crawl_result['data'][0]['screenshot'])

```

![Screenshot of Stripe API documentation homepage captured using Firecrawl's web scraping capabilities](https://www.firecrawl.dev/images/blog/crawl-masterclass/notebook_files/notebook_39_0.png)

Note that specifying more formats to transform the page’s contents can significantly slow down the process.

Another time-consuming operation can be scraping the entire page contents instead of just the elements you want. For such scenarios, Firecrawl allows you to control which elements of a webpage are scraped using the `onlyMainContent`, `includeTags`, and `excludeTags` parameters.

Enabling `onlyMainContent` parameter (disabled by default) excludes navigation, headers and footers:

```python
stripe_crawl_result = app.crawl_url(
    url="https://docs.stripe.com/api",
    params={
        "limit": 5,
        "scrapeOptions": {
            "formats": ["markdown", "html"],
            "onlyMainContent": True,
        },
    },
)

```

`includeTags` and `excludeTags` accepts a list of allowlisted/blocklisted HTML tags, classes and IDs:

```python