Scrape anything.
Nothing scrapes back.

A Python toolkit that bypasses Cloudflare, DataDome, Akamai, and PerimeterX — shipped as a CLI, a Python API, and a hosted service. Exports straight to CSV, JSON, Excel, or SQLite.

98% target coverageLGPL-2.1 licensedPython 3.10+
// in use for e-commerce · real-estate · job-boards · academic research · alt-data pipelines v0.9.2 · last release 4 days ago
the problem

The old scrapers stopped working.

▸ FAILURE MODE
Anti-bot systems got smarter.

Cloudflare Turnstile, DataDome and Akamai fingerprint TLS, canvas, WebGL and audio — not just IPs. A rotating proxy does nothing against that.

▸ FAILURE MODE
Proxies alone aren't enough.

You need matched browser fingerprints, real cookie state, and human-shaped request patterns. Otherwise you're just paying for blocked traffic.

▸ FAILURE MODE
Most scrapers break on JS-heavy sites.

SPAs, hydration, lazy-loaded data, infinite scroll. Anything with a real runtime needs a real browser — but only when it needs one.

how it works

Fastest method first.
Heavier weapons only when needed.

IntelliScrape runs a tiered engine. It attempts the cheapest, fastest scraping method first and escalates only when a target pushes back — so 70% of requests never leave tier 1, and hardcases still land.

engine.escalation()

curl_cffi

playwright-stealth

nodriver

camoufox

TIER 1
curl_cffi
TLS impersonation · static requests

Sub-second. Speaks TLS like Chrome/Firefox/Safari. Handles ~70% of targets alone.

fast
TIER 2
playwright-stealth
headless browser · JS runtime

Renders JS-heavy pages, patched fingerprints, real DOM. Escalates when static hits a wall.

medium
TIER 3
nodriver (CDP)
raw chromedriver · zero automation flags

Direct CDP with no webdriver traces. Deployed against DataDome / PerimeterX hardcases.

slow
TIER 4
camoufox
custom Firefox · canvas/WebGL spoof

Full fingerprint rewrite — canvas, WebGL, audio, fonts. Used only when needed.

slowest
// fallback triggers on: challenge, block, empty payload, TLS mismatch
capabilities

Everything the block-page is trying to stop.

antibot

Get past anti-bot walls

Cloudflare, DataDome, Akamai, PerimeterX bypass. Canvas / WebGL / audio fingerprint spoofing. TLS impersonation across Chrome, Firefox, Safari, Edge profiles.

$ intelliscrape https://target.com
→ protection: cloudflare
→ cleared in 2.1s
session

Log in and interact like a person

Auth flows, form submission, search inputs, click paths, human-shaped delays. Sessions survive across pages.

scraper.login(
user='me', pw='***')
scraper.search('q=widgets')
resilience

Never lose your place

Cookie persistence, smart retries with fallback engines, request/response interception. Resume where a run left off.

network

Scale without getting blocked

IP rotation, residential proxy support, per-endpoint health checking. Backoff when a target starts throttling — not after.

export

Get data out, not just HTML

Structured extraction from JSON-LD, meta tags, and DOM fallbacks. Export directly to CSV, JSON, Excel, or SQLite.

DataExporter.export(
result, format='xlsx',
file='out.xlsx')
crawl

Whole-site crawling

Pagination detection, sitemap parsing, media downloads, per-domain concurrency limits. Point it at a domain and get a dataset.

three ways to use it

Pick a surface.

Same engine, three entry points. The CLI is fastest for one-offs. The Python API is what you want inside a pipeline. The hosted service is what you want when you'd rather not run browsers on your own boxes.

terminal
$ intelliscrape https://example.com --export csv -o data.csv
$ intelliscrape https://site.com --login --username user --password pass
$ intelliscrape https://docs.python.org --crawl --max-pages 50
from data to analysis

Skip the "clean the HTML" step.

A scrape isn't finished until the data is queryable. IntelliScrape writes analysis-ready files: typed CSV, well-formed JSON, Excel with proper column types, or a portable SQLite database you can hand to your notebook.

CSV
typed columns · UTF-8
JSON
line-delimited or nested
Excel
multi-sheet · formatted
SQLite
indexed · queryable
products.csv
CSVJSONXLSXSQLITE
skunamecategorypricestockrating
p_10241AeroKnit Runner 3footwear$142.00in_stock4.7
p_10242Trailhead Vestouterwear$189.00in_stock4.6
p_10243CoreLite Merino Teetops$68.00low4.8
p_10244GridShell Windbreakerouterwear$225.00in_stock4.5
p_10245Alpine Waffle Beanieaccessory$34.00in_stock4.9
p_10246Sable Trail Short 7"bottoms$78.00in_stock4.4
248 rows · 14 fields62.1 KB · exported 00:09.44
open source

Free. LGPL-2.1 licensed. On GitHub.

GuixJoy / IntelliScrapepublic

Anti-detection web scraping for 98% of the internet. CLI, Python API, and a hostable FastAPI service. Written in Python 3.10+.

star history · 12 months
install
$ pip install intelliscrape
resolved 14 deps · 3.2 MB
installed intelliscrape-0.9.2
$ intelliscrape --version
intelliscrape 0.9.2