Scrapling
MCP serverWeb & browsingScrapling is an MCP server that gives an AI agent web scraping abilities. It can fetch pages with stealth HTTP, drive real browsers, and bypass Cloudflare protection. The agent can then extract data from the returned HTML using CSS selectors.
Unavailable. This server has no hosted endpoint yet, so Ahel can't serve it.
Add to setup to save this item as a reference. Ahel cannot run it, and signing in will not install it.
What your AI can do with it
- Fetch web pages using stealth HTTP requests
- Drive real browsers to load JavaScript-heavy pages
- Bypass Cloudflare bot protection
- Extract data from HTML with CSS selectors
Getting started
- Save this item in Your setup as a reference.
- Read the source or reference documentation for its setup requirements. Saving it here does not connect it to your AI.
- Check this page for availability before trying to install it through Ahel.
From the project's README
As published by d4vinci/scrapling in README.md.
Scrapling is an adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl.
Its parser learns from website changes and automatically relocates your elements when pages update. Its fetchers bypass anti-bot systems like Cloudflare Turnstile out of the box. And its spider framework lets you scale up to concurrent, multi-session crawls with pause/resume, automatic proxy rotation, and a crawl speed that adapts to how fast each website responds and backs off when it starts blocking you - all in a few lines of Python. One library, zero compromises.
Blazing fast crawls with real-time stats and streaming. Built by Web Scrapers for Web Scrapers and regular users, there's something for everyone.
from scrapling.fetchers import Fetcher, AsyncFetcher, StealthyFetcher, DynamicFetcher
StealthyFetcher.adaptive = True
p = StealthyFetcher.fetch('https://example.com', headless=True, network_idle=True) # Fetch website under the radar!
products = p.css('.product', auto_save=True) # Scrape data that survives website design changes!
products = p.css('.product', adaptive=True) # Later, if the website structure changes, pass `adaptive=True` to find them!
Or scale up to full crawls
from scrapling.spiders import Spider, Response
class MySpider(Spider):
name = "demo"
start_urls = ["https://example.com/"]
async def parse(self, response: Response):
for item in response.css('.product'):
yield {"title": item.css('h2::text').get()}
MySpider().start()
Platinum Sponsors
Do you want to show your ad here? Click here
Sponsors
Do you want to show your ad here? Click here and choose the tier that suits you!
Key Features
Spiders - A Full Crawling Framework
- π·οΈ Scrapy-like Spider API: Define spiders with
start_urls, asyncparsecallbacks, andRequest/Responseobjects. - β‘ Concurrent Crawling: Configurable concurrency limits, per-domain throttling, and download delays.
- π Multi-Session Support: Unified interface for HTTP requests, and stealthy headless browsers in a single spider - route requests to different sessions by ID.
- πΎ Pause & Resume: Checkpoint-based crawl persistence. Press Ctrl+C for a graceful shutdown; restart to resume from where you left off.
- π‘ Streaming Mode: Stream scraped items as they arrive via
async for item in spider.stream()with real-time stats - ideal for UI, pipelines, and long-running crawls. - π‘οΈ Blocked Request Detection: Automatic detection and retry of blocked requests with customizable logic.
- π¦ AutoThrottle: Stop guessing delays. The spider tunes the delay of each domain on its own from how fast the website responds, then doubles it (or waits what
Retry-Afterasks) whenever the website starts blocking or rate-limiting you, and speeds back up once it stops. - π€ Robots.txt Compliance: Optional
robots_txt_obeyflag that respectsDisallow,Crawl-delay, andRequest-ratedirectives with per-domain caching. - π§ͺ Development Mode: Cache responses to disk on the first run and replay them on subsequent runs - iterate on your
parse()logic without re-hitting the target servers. - π§© Ready-made Spider Templates: Skip the boilerplate with
CrawlSpiderfor rule-based link following,SitemapSpiderfor sitemap/robots.txt-driven crawls,XMLFeedSpider/CSVFeedSpiderfor iterating XML/RSS and CSV feeds, andShopifySpiderto pull every product out of any Shopify store through its JSON API, one item per variant. - π Link Extraction: A standalone
LinkExtractorprimitive with allow/deny patterns, domain filters, CSS/XPath scoping, extension filtering, and canonicalization - use it inside the templates or on its own. - π¦ Built-in Export: Export results through hooks and your own pipeline or the built-in JSON/JSONL/CSV/XML exporters with
result.items.to_json(),to_jsonl(),to_csv(), andto_xml().
Advanced Websites Fetching with Session Support
- HTTP Requests: Fast and stealthy HTTP requests with the
Fetcherclass. Can impersonate browsers' TLS fingerprint, headers, and use HTTP/3. - Dynamic Loading: Fetch dynamic websites with full browser automation through the
DynamicFetcherclass supporting Playwright's Chromium and Google's Chrome. - Anti-bot Bypass: Advanced stealth capabilities with
StealthyFetcherand fingerprint spoofing. Can easily bypass all types of Cloudflare's Turnstile/Interstitial with automation. - Session Management: Persistent session support with
FetcherSession,StealthySession, andDynamicSessionclasses for cookie and state management across requests. - Proxy Rotation: Built-in
ProxyRotatorwith cyclic or custom rotation strategies across all session types, plus per-request proxy overrides. - Domain & Ad Blocking: Block requests to specific domains (and their subdomains) or enable built-in ad blocking (~3,500 known ad/tracker domains) in browser-based fetchers.
- DNS Leak Prevention: Optional DNS-over-HTTPS support to route DNS queries through Cloudflare's DoH, preventing DNS leaks when using proxies.
- Remote Browsers: Instead of launching a browser locally, connect to one that's already running through CDP with
cdp_url, whether it's on the same machine, another host, or a managed browser provider. You can also point any browser fetcher at your own Chromium build withexecutable_path. - Background API Capture: Pass a URL pattern to
capture_xhr, and all matching XHR/fetch responses the page makes while loading are collected for you asResponseobjects inresponse.captured_xhr- grab a site's API data without reverse-engineering the requests yourself. - Async Support: Complete async support across all fetchers and dedicated async session classes.
Adaptive Scraping
- π Smart Element Tracking: Relocate elements after website changes using intelligent similarity algorithms.
- π― Smart Flexible Selection: CSS selectors, XPath selectors, filter-based search, text search, regex search, and more.
- π Find Similar Elements: Automatically locate elements similar to found elements.
AI Features
- π€ MCP Server: Let AI chatbots and agents (Claude/Cursor/etc) scrape through Scrapling with one-shot or session-based tools covering plain HTTP requests (any method), browser fetches, and stealth fetches that bypass Cloudflare. Pages are narrowed with CSS selectors and stripped of prompt-injection content before the AI sees them, so the agent reads less, costs less, and can't be hijacked by hidden text. Screenshots, remote browsers over CDP, and a secure-by-default HTTP transport are included. (demo video)
- π§ Agent Skill: A ready-to-install Agent Skill that teaches coding agents the whole library, so the code they write with Scrapling matches the current API instead of guessing.
- π RAG-ready Markdown: Turn any page into clean, sanitized, LLM-ready Markdown with one line (
page.markdown()), or crawl a whole website into a Markdown corpus with theSiteToMarkdownSpidertemplate, all without an LLM in the loop. (docs)
High-Performance & battle-tested Architecture
- π Lightning Fast: Optimized performance outperforming most Python scraping libraries.
- π Memory Efficient: Optimized data structures and lazy loading for a minimal memory footprint.
- β‘ Fast JSON Serialization: 10x faster than the standard library.
- ποΈ Battle tested: Not only does Scrapling have 92% test coverage and full type hints coverage, but it has been used daily by hundreds of Web Scrapers over the past year.
Developer/Web Scraper Friendly Experience
- π― Interactive Web Scraping Shell: Optional built-in IPython shell with Scrapling integration, shortcuts, and new tools to speed up Web Scraping scripts development, like converting curl requests to Scrapling requests and viewing requests results in your browser.
- π Use it directly from the Terminal: Optionally, you can use Scrapling to scrape a URL without writing a single line of code!
- π οΈ Rich Navigation API: Advanced DOM traversal with parent, sibling, and child navigation methods.
- 𧬠Enhanced Text Processing: Built-in regex, cleaning methods, and optimized string operations.
- π Auto Selector Generation: Generate robust CSS/XPath selectors for any element.
- π Familiar API: Similar to Scrapy/BeautifulSoup with the same pseudo-elements used in Scrapy/Parsel.
- π€ Drop-in Scrapy Integration: Already invested in Scrapy? Decorate any callback with
scrapling_responseto parse the responses you already fetch with Scrapling's parser, no rewrite needed. - π Complete Type Coverage: Full type hints for excellent IDE support and code completion. The entire codebase is automatically scanned with PyRight and MyPy with each change.
- π Ready Docker image: With each release, a Docker image containing all browsers is automatically built and pushed.
Getting Started
Let's give you a quick glimpse of what Scrapling can do without deep diving.
Basic Usage
HTTP requests with session support
from scrapling.fetchers import Fetcher, FetcherSession
with FetcherSession(impersonate='chrome') as session: # Use latest version of Chrome's TLS fingerprint
page = session.get('https://quotes.toscrape.com/', stealthy_headers=True)
quotes = page.css('.quote .text::text').getall()
# Or use one-off requests
page = Fetcher.get('https://quotes.toscrape.com/')
quotes = page.css('.quote .text::text').getall()
Advanced stealth mode
from scrapling.fetchers import StealthyFetcher, StealthySession
Shortened here. Read the whole README on GitHub.
Signals
- GitHub stars
- 85k
- Forks
- 9k
- Last commit
- Sep 2026
Questions
- What is Scrapling MCP?
- Scrapling MCP is an MCP server that lets an AI agent scrape web pages using stealth HTTP, real browsers, and Cloudflare bypass, then extract data with CSS selectors.
- Does Scrapling support CSS selectors?
- Yes. Scrapling supports CSS selectors for extracting data from fetched pages.
- Can Scrapling bypass Cloudflare?
- Yes. Scrapling includes Cloudflare bypass as part of its scraping capabilities.
- Does Scrapling use real browsers?
- Yes. Scrapling can drive real browsers to load pages.
- How do I add Scrapling to my agent?
- Install the Scrapling MCP server, add it to your agent's MCP configuration, and reload the agent.
Advanced
- Delivery
- Scrapling MCP server β your Ahel connector (mcp.ahel.ai) β your AI.
- Item type
- mcp-server
- Key
io-github-d4vinci-scrapling- Source
- github.com/d4vinci/scrapling
More in Web & browsing
MCP server
More in Web & browsingfirecrawl-mcp-server
MCP server Β· firecrawl
More in Web & browsingapify-mcp-server
MCP server Β· apify
More in Web & browsingBrowserbase
MCP server Β· browserbase
More in Web & browsinginspo
MCP server Β· nutlope
More in Web & browsingplaywright-mcp
MCP server Β· microsoft
More in Web & browsing