Skip to content

botasaurus

4,321 5 52 MIT
4.0.97 (6 Jan 2026) Oct 01 2023 35.5 thousand (month)

Botasaurus is an all-in-one Python web scraping framework that combines browser automation, anti-detection, and scaling features into a single package. It aims to simplify the entire web scraping workflow from development to deployment.

Key features include:

  • Anti-detect browser Ships with a stealth-patched browser that passes common bot detection tests. Automatically handles fingerprinting, user agent rotation, and other anti-detection measures.
  • Decorator-based API Uses Python decorators (@browser, @request) to define scraping tasks, making code clean and easy to organize.
  • Built-in parallelism Easy parallel execution of scraping tasks across multiple browser instances with configurable concurrency.
  • Caching Built-in caching layer to avoid re-scraping pages during development and debugging.
  • Profile persistence Can save and reuse browser profiles (cookies, localStorage) across scraping sessions for maintaining login state.
  • Output handling Automatic output to JSON, CSV, or custom formats with built-in data filtering.
  • Web dashboard Includes a web UI for monitoring scraping progress, viewing results, and managing tasks.

Botasaurus is designed for developers who want a batteries-included framework that handles anti-detection automatically, without needing to manually configure stealth settings or manage browser fingerprints.

Highlights


anti-detectstealthlarge-scale

Example Use


```python from botasaurus.browser import browser, Driver from botasaurus.request import request, Request

Browser-based scraping with anti-detection

@browser(parallel=3, cache=True) def scrape_products(driver: Driver, url: str): driver.get(url)

# Wait for content to load
driver.wait_for_element(".product-list")

# Extract product data
products = []
for el in driver.select_all(".product-card"):
    products.append({
        "name": el.select(".product-name").text,
        "price": el.select(".product-price").text,
        "url": el.select("a").get_attribute("href"),
    })
return products

HTTP-based scraping (no browser needed)

@request(parallel=5, cache=True) def scrape_api(req: Request, url: str): response = req.get(url) return response.json()

Run the scraper

results = scrape_products( ["https://example.com/page/1", "https://example.com/page/2"] ) ```

Alternatives / Similar


5,944 v0.6.1 (2024-03-02 18:08:29 ago) Feb 23 2022 compare
primp new
504 1.2.2 (2026-04-03 07:11:15 ago) Jun 01 2024 compare
61,276 2.15.0 (2026-04-09 12:02:09 ago) Jul 26 2019 compare
crawl4ai new
63,373 0.8.6 (2026-03-24 15:07:50 ago) May 01 2024 compare
12,519 3.5.5 (2024-02-17 17:18:36 ago) Sep 04 2020 compare
camoufox new
7,089 0.4.11 (2025-01-29 09:33:18 ago) Mar 01 2024 compare
1,751 0.7.1 (2024-07-13 09:07:25 ago) Feb 23 2022 compare
scrapling new
36,206 0.4.5 (2026-04-07 04:22:27 ago) Aug 01 2024 compare
nodriver new
4,003 0.48.1 (2025-11-09 05:57:23 ago) Jan 15 2024 compare
23,278 1.76.0 (2026-04-09 09:41:03 ago) Jan 15 2024 compare
3,087 1.6.0 (2025-07-22 06:00:53 ago) Sep 04 2013 compare
1,001 0.9.2 (2024-12-01 02:55:27 ago) Feb 23 2022 compare
248 1.34.0 (2024-11-27 14:57:34 ago) Feb 05 2023 compare
718 1.9.4 (2024-10-22 01:41:19 ago) Jul 22 2022 compare
3,400 1.6.0 (2025-02-16 13:18:50 ago) Sep 30 2018 compare
12,807 1.1.9 (2018-10-21 03:39:17 ago) Aug 24 2018 compare
7,136 1.1.14 (2022-07-17 17:20:09 ago) Jul 26 2019 compare
3,495 0.9.13 (2023-07-19 18:53:46 ago) Jul 04 2017 compare
1,743 0.8.5 (2022-09-06 08:54:56 ago) Oct 17 2018 compare
425 0.1.3 (2023-08-01 20:28:33 ago) Feb 20 2022 compare
pydoll new
- 0.0.0 (2025-02-01 00:00:00 ago) Jun 01 2024 compare
firecrawl new
- 0.0.0 (2025-03-15 00:00:00 ago) Apr 01 2024 compare

Other Languages

25,231 v2.2.0 (2025-03-27 10:47:28 ago) May 14 2018 compare
katana new
16,499 v1.5.0 (2026-03-10 14:52:47 ago) Nov 07 2022 compare
7,594 v1.4.0 (2026-03-03 03:58:32 ago) Feb 15 2020 compare
2,772 2026-04-11 (2026-04-11 21:30:25 ago) Jun 06 2019 compare
711 2026-03-21 (2026-03-21 09:11:03 ago) Feb 09 2017 compare
94,086 2.11.2 (2023-04-11 04:13:00 ago) May 29 2018 compare
7,293 3.3.6 (2023-03-01 12:19:02 ago) May 15 2018 compare
1,517 1.0.5 (2024-02-12 21:10:00 ago) Nov 22 2014 compare
crawlee new
22,720 3.16.0 (2026-04-09 07:36:53 ago) Apr 22 2022 compare
mechanize new
4,440 2.14.0 (2025-01-05 18:30:46 ago) Jul 25 2009 compare
5,964 v2.0.0-alpha.7 (2026-04-07 15:33:51 ago) Oct 28 2020 compare
2,053 (2021-05-19 15:14:49 ago) Nov 20 2016 compare
6,790 2.0.2 (2025-05-28 09:36:01 ago) Sep 10 2012 compare
3,062 v2.4.0 (2026-01-08 05:29:21 ago) Jul 17 2018 compare
goutte new
9,215 v4.0.3 (2023-04-01 09:05:33 ago) Dec 02 2012 compare
835 0.7.2 (2025-02-03 07:58:27 ago) Jul 25 2009 compare
kimurai new
1,098 2.2.0 (2026-01-27 17:36:19 ago) Aug 23 2018 compare
1,360 3.3.0 (2026-04-07 16:31:34 ago) Dec 27 2011 compare
1,454 v3.2.1 (2025-03-21 06:53:36 ago) Dec 27 2021 compare
165 2.3.0 (2021-03-18 00:10:00 ago) Dec 22 2019 compare
217 1.0.0-beta8.4 (2023-06-29 12:37:12 ago) Apr 18 2019 compare
583 3.0.0 (2024-04-09 15:34:59 ago) May 04 2020 compare
1,341 v0.7.6 (2025-12-04 15:08:06 ago) Mar 16 2013 compare
369 v3.5.6 (2026-01-05 11:13:18 ago) Apr 18 2022 compare
Was this page helpful?