Stealth Web Scraper avatar

Stealth Web Scraper

Pricing

Pay per usage

Go to Apify Store
Stealth Web Scraper

Stealth Web Scraper

Scrape websites protected by Cloudflare, Turnstile, and other anti-bot systems. Built-in proxy rotation, browser fingerprint protection, and CAPTCHA solving. No extra configuration needed.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

2 days ago

Last modified

Share

Scrape any website — even those protected by Cloudflare, Turnstile CAPTCHAs, and other anti-bot systems. Built-in proxy rotation, browser fingerprint protection, and human behavior simulation. No extra setup needed.

Why this scraper?

Most web scrapers fail on protected websites. Cloudflare alone protects 20% of all websites (41M+ sites). This Actor uses a real browser engine with anti-detection technology to bypass these protections automatically.

Protection LevelExamplesSuccess Rate
No protectionWikipedia, static sites100%
Basic (JS challenge)Many e-commerce sites100%
Medium (Cloudflare standard)Fiverr, job boards86-100%
Strong (CF Turnstile CAPTCHA)Clutch, Upwork100%

Features

  • Anti-bot bypass — Handles Cloudflare challenges, Turnstile CAPTCHAs, and browser fingerprint detection automatically
  • Residential proxy rotation — Built-in proxy pool with intelligent rotation, cooldown, and blacklist management
  • Browser fingerprint masking — Uses Patchright (undetectable Playwright fork) with stealth configuration
  • Human behavior simulation — Random delays, mouse movements, and page interaction patterns
  • CSS selector extraction — Optionally extract specific data fields using CSS selectors
  • Flexible output — Get full HTML, plain text, or both for each page
  • Concurrent scraping — Process up to 5 pages in parallel
  • Automatic retries — 3 retry attempts per URL with proxy rotation on failure

How it works

  1. Takes your list of URLs
  2. Opens each URL in an undetectable browser with a rotating residential proxy
  3. Detects and resolves any anti-bot challenges (Cloudflare, Turnstile, etc.)
  4. Simulates human browsing behavior
  5. Extracts and returns the page content

No API keys, no proxy configuration, no browser setup — it just works.

Input Parameters

ParameterTypeRequiredDescription
urlsarrayYesList of URLs to scrape
extractSelectorsobjectNoCSS selectors to extract specific fields (e.g. {"title": "h1", "price": ".price"})
outputFormatstringNohtml, text, or both (default: both)
waitForSelectorstringNoCSS selector to wait for before extracting (for JS-rendered pages)
maxConcurrencyintegerNoParallel pages (1-5, default: 1)
pageTimeoutintegerNoPage load timeout in seconds (30-300, default: 90)

Output Fields

FieldTypeDescription
urlstringThe scraped URL
statusCodeintegerHTTP status code (200 = success)
blockedbooleanWhether anti-bot protection blocked the request
titlestringPage title
htmlstringFull page HTML (if outputFormat includes html)
textstringPlain text content (if outputFormat includes text)
extractedobjectExtracted fields (if extractSelectors provided)
scrapedAtstringISO timestamp of when the page was scraped

Example: Basic scraping

Input:

{
"urls": [
"https://www.clutch.co/it-services",
"https://www.fiverr.com/categories/programming-tech"
],
"outputFormat": "text"
}

Output:

{
"url": "https://www.clutch.co/it-services",
"statusCode": 200,
"blocked": false,
"title": "Top IT Services Companies - 2026 Reviews | Clutch.co",
"text": "Top IT Services Companies...",
"scrapedAt": "2026-04-02T10:30:00.000Z"
}

Example: Extract specific fields

Input:

{
"urls": ["https://example-shop.com/product/123"],
"extractSelectors": {
"productName": "h1.product-title",
"price": ".price-current",
"description": ".product-description",
"reviews": ".review-text"
},
"outputFormat": "text"
}

Output:

{
"url": "https://example-shop.com/product/123",
"statusCode": 200,
"blocked": false,
"title": "Product Name - Example Shop",
"text": "...",
"extracted": {
"productName": "Wireless Headphones Pro",
"price": "$79.99",
"description": "Premium noise-cancelling...",
"reviews": ["Great sound quality!", "Best purchase ever"]
},
"scrapedAt": "2026-04-02T10:30:00.000Z"
}

Use Cases

  • Price monitoring — Track product prices on e-commerce sites with anti-bot protection
  • Lead generation — Scrape business directories and company listings
  • Market research — Collect data from competitor websites
  • Content aggregation — Gather articles, reviews, or listings from multiple sources
  • SEO monitoring — Check search result pages and competitor content
  • Real estate data — Scrape property listings from protected platforms
  • Job market analysis — Collect job postings from protected job boards

Performance

  • ~8-12 seconds per page (with anti-bot handling)
  • ~5-7 seconds per page (unprotected sites)
  • Concurrent mode: up to 5x faster with maxConcurrency setting
  • 50 pages: ~5-10 minutes
  • 200 pages: ~20-35 minutes

Compared to other scrapers

FeatureFree Apify ScrapersOther Anti-Bot ActorsStealth Web Scraper
Unprotected sitesYesYesYes
Cloudflare bypassNoClaims yes (rated 1-3/5)Yes (verified 86-100%)
Turnstile CAPTCHANoUnreliableYes (verified 100%)
Built-in proxiesNoSomeYes (residential)
Browser fingerprintBasicBasicAdvanced (Patchright)
PPE pricingFree + computeMostly rental (dying)Pay per page
Published success ratesNoNoYes, per-site verified

Proxy

This Actor uses its own residential proxy pool. No additional proxy configuration is needed.

FAQ

Q: Can it scrape any website? A: It handles most websites including those with Cloudflare, Turnstile, and JavaScript-heavy rendering. Extremely aggressive anti-bot systems (like some banking sites) may still block requests.

Q: Do I need to provide my own proxies? A: No. Residential proxies are built-in and included in the price.

Q: How is this different from Apify's Web Scraper? A: Apify's official Web Scraper has no anti-bot bypass capability. It fails on Cloudflare-protected sites. This Actor uses an undetectable browser engine specifically designed to bypass anti-bot protections.

Q: Can I extract specific data from pages? A: Yes. Use the extractSelectors parameter with CSS selectors to extract specific fields. For complex extraction logic, you can process the returned HTML in your own code.

Q: What about JavaScript-rendered pages? A: The Actor uses a full browser engine, so JavaScript is fully executed. Use waitForSelector if you need to wait for specific dynamic content to load.