web scraping
Scrapling Walks Past Cloudflare, and Parses 700 Times Faster Than Your AI's Default
A free Python scraping framework with a stealth fetcher built to clear Cloudflare's Turnstile, and a parser about 785 times faster than BeautifulSoup, which is what an AI writes when you do not specify. The benchmark read properly, the install, and the three uses worth having.
Scrapling is a free, BSD-licensed Python scraping framework by Karim Shoair, sitting around 83,000 stars. It does two things worth caring about: its stealth fetcher is built to clear Cloudflare's Turnstile and interstitial challenges, and its parser runs about 785 times faster than BeautifulSoup, which is the library an AI reaches for when you ask it for a scraper and do not say otherwise.
Install is pip install scrapling, then scrapling install for the browser dependencies. The rest of this is what those two claims actually mean, because one of them is more honest than it first looks and the other is better than it sounds.
Why does my scraper keep coming back empty?
Because it announced itself.
A plain HTTP request from a script doesn't look like a person. It has the wrong headers, no browser fingerprint, no history, and it arrives too fast. Sites behind Cloudflare respond with a challenge screen rather than the page, and your scraper cheerfully parses the challenge screen, finds none of the things you asked for, and reports back that the page was empty.

That's the failure mode that matters most when an agent's doing the scraping, because the agent doesn't know it was blocked. It reads an empty result as a true one. Everything downstream of that is then confidently wrong, and you find out days later.
Does it actually get past Cloudflare?
The author published a short demo of Claude driving Scrapling straight through a live Cloudflare wall on a retail site, and it clears it.

The project describes this as "advanced stealth capabilities with StealthyFetcher and fingerprint spoofing", and says it can bypass all types of Cloudflare's Turnstile and interstitial with automation.
I'd treat that the way I treat any anti-bot claim, which is true today and not guaranteed next quarter. It's an arms race and the defending side ships too. What you're getting is a project that's actively maintained against that rather than a one-time trick, and the star count is really a proxy for how many people are finding out quickly when it breaks.
What does 700 times faster actually mean?
This is the number I used in the video and it deserves the fine print, because it depends entirely on what you compare against.

Against Parsel, the parser Scrapy uses, Scrapling is 1.035 times faster. That's a rounding error and nobody should switch for it. Against raw Lxml it's 1.286 times. Still small.
The gap only becomes dramatic at the bottom of that table. MechanicalSoup is about 776 times slower. BeautifulSoup with Lxml is about 785 times. BeautifulSoup with html5lib is about 1,715 times.
So "700 times faster" is a fair, slightly conservative statement about one specific comparison: Scrapling against BeautifulSoup. That comparison is worth making not because BeautifulSoup is a bad library, but because BeautifulSoup is what you get by default. Ask any assistant for a scraper without naming a parser and you will get from bs4 import BeautifulSoup, because that is what dominates the training data. If you have ever had an agent build you something that took minutes to chew through a few thousand pages, that is usually the whole explanation.
None of this shows up on one page. Across fifty thousand of them, 1.99 milliseconds against 1,562 becomes the difference between a job that finishes and a job you abandon.
The three uses worth having
I promised three in the video, and these are the three I would actually set up.
Price and listing monitoring on sites that block you. Competitor pricing pages, marketplace listings, directories. These are exactly the pages that sit behind a challenge, and exactly the ones where a silent empty result does real damage, because you will act on the number.
Structured research pulls. When you need the same twelve fields off four hundred pages, the parser speed stops being academic and the stealth layer stops the job dying at page thirty.
A fetch tool for your agent that fails loudly. This is the one I care about most. Give the agent Scrapling instead of whatever it would write for itself, and a blocked page comes back as a block rather than as nothing. A scraper that fails loudly is a minor inconvenience. A scraper that fails silently corrupts every conclusion built on top of it.
Is it worth it if you already pay for scraping?
Worth doing the arithmetic on.

Hosted scraping services start around $19 a month and run to $599 at the top of the published tiers. Scrapling does a comparable job on your own machine for nothing.
That's not a free win and I wouldn't sell it as one. You're taking on the maintenance instead, so when a target changes or the anti-bot layer moves, it's your problem at whatever hour it happens, and a hosted service exists precisely so it isn't. For a handful of jobs you control, running it yourself is clearly right, and for something a client depends on at nine on a Monday, paying someone else is a legitimate answer.
FAQ
How do I install Scrapling?
Run pip install scrapling, then scrapling install to pull in the browser dependencies it needs for the stealth fetcher.
Is Scrapling really 700 times faster than BeautifulSoup?
Against BeautifulSoup, yes: about 785 times on the project's own benchmark. Against Parsel or raw Lxml the gap is tiny, so the number only matters if your scraper uses BeautifulSoup, which is what an AI writes by default.
Will Scrapling always get past Cloudflare?
It clears Turnstile and interstitial challenges today, and it's actively maintained against changes. Anti-bot is an arms race, so treat that as true now rather than guaranteed next quarter.
Should I drop my paid scraping service for Scrapling?
For a handful of jobs you control, running it yourself is the better deal. For something a client depends on every morning, a hosted service that someone else maintains is still a fair thing to pay for.
Two things I would be careful about
Scraping a site through a stealth fetcher is usually against that site's terms of service, whatever the tool's licence permits. The licence governs the code, not what you do with someone else's server. That's a decision you're making deliberately, and it gets heavier the moment you're doing it for a client rather than for yourself.
And slow it down. Both the speed and the stealth make it very easy to hit a site harder than any human would, and the fastest way to lose a source permanently is to take it flat out on day one. Rate limit yourself before someone does it for you.
The thing this changes is not really scraping. It is whether an agent you set running can be trusted to come back with the truth about what it found, which is the difference between a tool you check and a tool you can leave alone. If you want the other half of that, reading the walled platforms rather than the defended ones, Agent Reach covers it, and the two work side by side.