
Scrapling
github.com/d4vinci/scrapling- Category
- Developer Tools
- Rank
- No. 261Tools index
Previous survey · No. 266 ·
- Type
- APP
- Builder
- d4vinci
- GitHub
- 81.1k stars
- Latest release
- v0.4.15
- Date
About
An adaptive, high-performance Python web-scraping framework that auto-adjusts to site changes.
What it does
Scrapling combines HTML parsing, page fetching, browser automation, and full crawling in one Python toolkit. It selects content through CSS, XPath, text, regex, and similarity searches. For larger jobs, its spiders coordinate concurrent sessions, retries, throttling, checkpoints, streaming results, and proxy rotation.
Why it's ranked here
This is unusually broad for a scraping library. The same package covers raw HTML, ordinary HTTP, automated browsers, persistent sessions, and resumable crawls. Adaptive element tracking addresses a costly maintenance problem, while terminal and MCP interfaces make the engine useful beyond hand-written Python scripts.
What's good
The crawler has practical production features: per-domain throttling, blocked-request retries, response caching, pause and resume, real-time statistics, and built-in exporters. Browser fetchers can capture background API responses and connect to remote browsers. Parsing supports several selection styles, DOM navigation, and element similarity matching.
Tradeoffs
The richer fetching modes carry substantial optional dependencies, including browser automation, fingerprint tooling, and asynchronous infrastructure. Anti-bot handling is presented as a capability, not a universal guarantee. Robots compliance is optional. Adaptive tracking also requires saving an earlier match before relocation can help after a page changes.
How to use it well
Use it when a Python scraping workflow may grow from page extraction into browser-backed or concurrent crawling. Start with lightweight parsing and HTTP dependencies, then add browser, shell, or AI extras only when needed. Supply your own proxies and target-specific compliance rules. It is not a hosted proxy network or ready-made data API.
Technical notes+
pyproject.toml uses setuptools.build_meta, requires Python 3.10 or newer, and separates the small parsing core from fetchers, ai, shell, and all extras. It installs scrapling and scrapling-mcp console scripts through scrapling.cli:main and scrapling.cli:mcp. docs/index.md documents Spider concurrency, multi-session routing, checkpoint persistence, AutoThrottle, robots.txt handling, exporters, CDP browser connections, XHR capture, adaptive selection, and MCP sessions. setup.cfg identifies the package license as BSD.
Observed
- License
- BSD License
- Primary language
- Python 3 only, with Python 3.10 or newer required
- Packaging
- Setuptools package with core dependencies and optional fetchers, AI, shell, and combined extras
- Interfaces
- Python library, command-line interface, interactive shell option, and MCP server
- Platform support
- Declared operating-system independent
- Typing
- Package declares typed support and configures mypy and Pyright checks
Read from README.md, setup.cfg, pyproject.toml, docs/index.md, docs/donate.md, docs/overview.md, docs/README_AR.md, docs/README_CN.md, docs/README_DE.md, docs/README_ES.md.
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.