Stealth Scraper avatar

Stealth Scraper

Pricing

Pay per usage

Go to Apify Store
Stealth Scraper

Stealth Scraper

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Shivam Goraksha

Shivam Goraksha

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Stealth HTML Scraper

Get fully rendered HTML from any website — even behind Cloudflare, Turnstile, Akamai, and other anti-bot protections.

No browser setup. No proxy headaches. No blocked requests. Just pass a URL, get back the complete rendered HTML.

The problem

You need HTML from a website. You send a request. You get back an empty shell, a CAPTCHA wall, or a 403. The site uses JavaScript rendering, anti-bot detection, or both — and your scraper is dead in the water.

This Actor fixes that permanently.

Two modes for every situation

Stealth Mode (default)

A full browser renders the page exactly like a real user would see it. Every script executes, every API call fires, every component loads. The output is the complete, final HTML after all JavaScript has finished running.

Built from the ground up to be undetectable:

  • Automation fingerprints eliminated at the binary level — not patched over with JavaScript hacks that bot detectors catch in milliseconds
  • Unique browser identity per request — realistic fingerprints that pass canvas, WebGL, and font enumeration checks
  • WebRTC leak protection — your real IP stays hidden even without proxies
  • Canvas fingerprint randomization — defeats the most common browser fingerprinting technique
  • Passes Cloudflare Turnstile, Akamai Bot Manager, PerimeterX, DataDome, and every other major anti-bot system

Use stealth mode for:

  • Cloudflare-protected sites
  • Single-page applications (React, Vue, Angular, Next.js)
  • Sites that return empty HTML to regular HTTP requests
  • Any page where you need the fully rendered DOM

Fast Mode

Lightning-fast HTTP requests with intelligent header and connection fingerprinting. No browser overhead — just raw speed. 10x faster and 10x cheaper than stealth mode.

Use fast mode for:

  • Static websites, blogs, and documentation
  • REST APIs and JSON endpoints
  • Sites without bot protection
  • High-volume jobs where speed matters more than rendering

Who this is for

Lead generation teams

Scrape business directories, agent profiles, company pages, and contact databases — even when they're locked behind anti-bot walls. Get the rendered HTML with all the data your pipeline needs.

Price monitoring & competitive intelligence

Track competitor pricing, inventory levels, and product catalogs on e-commerce sites. Works on Shopify, Amazon, and other platforms that aggressively block scrapers.

Real estate & property data

Pull fully rendered listing pages, agent profiles, and property details from MLS sites and real estate platforms that rely on JavaScript rendering.

Market research & analytics

Collect rendered data from review sites, social platforms, job boards, and financial data providers. Get the same HTML a real browser sees — no missing content.

SEO & content monitoring

Check how pages actually render to search engines. Capture dynamically loaded content, lazy-loaded images, and client-side rendered text that static scrapers miss entirely.

Academic & research data collection

Gather datasets from web sources at scale without getting blocked. Ideal for researchers who need reliable, repeatable access to public web data.

Input

FieldTypeDefaultDescription
urlsstring[]requiredList of URLs to scrape
modestring"stealth""stealth" (full browser rendering) or "fast" (HTTP only)
concurrencyinteger5Parallel pages (1-20)
timeoutinteger60Seconds per page
delaynumber2Seconds between requests per slot
waitSelectorstringnullCSS selector to wait for before capturing HTML
networkIdlebooleantrueWait for all network requests to finish
blockWebrtcbooleantruePrevent IP leaks through WebRTC
hideCanvasbooleantrueRandomize canvas fingerprint
useProxybooleanfalseRoute through Apify residential proxies
proxyGroupsstring[]["RESIDENTIAL"]Proxy groups to use

Output

Each URL produces a dataset row:

{
"url": "https://example.com/page",
"status": 200,
"html": "<!DOCTYPE html><html>...</html>",
"bytes": 875432,
"error": null
}

The html field contains the full rendered DOM — ready to parse with any HTML parser in any language.

Examples

Scrape a protected page

{
"urls": ["https://protected-site.com/data"],
"mode": "stealth",
"useProxy": true,
"networkIdle": true
}

Bulk scrape 1,000 product pages

{
"urls": ["https://shop.com/product/1", "https://shop.com/product/2", "..."],
"mode": "fast",
"concurrency": 15,
"delay": 1
}

Wait for dynamic content to load

{
"urls": ["https://spa-app.com/dashboard"],
"mode": "stealth",
"waitSelector": ".dashboard-content",
"networkIdle": true
}

API integration

Call this Actor programmatically from any language:

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("YOUR_USERNAME/stealth-scraper").call(
run_input={"urls": ["https://example.com"], "mode": "stealth"}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["url"], item["bytes"], "bytes")
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_USERNAME/stealth-scraper').call({
urls: ['https://example.com'],
mode: 'stealth',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Performance

ModeSpeedCostBest for
Fast~1-2 sec/pageFractions of a centStatic sites, APIs, bulk jobs
Stealth~5-10 sec/page~$0.01-0.03/pageJS-rendered sites, anti-bot protected

Run 15 pages in parallel and process 5,000+ pages per hour in stealth mode.

FAQ

Will this work on my target site? If it loads in a real browser, this Actor can scrape it. It passes every major bot detection system in production today.

Do I need proxies? For most sites, no. For sites that rate-limit by IP or block datacenter IPs, enable Apify residential proxies for best results.

Can I scrape thousands of pages? Yes. Set concurrency to 10-15 and let it run. The Actor handles errors gracefully and processes pages in parallel.

What do I get back? The exact same HTML that a real user's browser would render — including all JavaScript-generated content, dynamically loaded data, and client-side rendered components.

How is this different from other scraping actors? Most scrapers use standard headless browsers that get detected and blocked immediately. This Actor uses a purpose-built stealth engine that eliminates automation fingerprints at a fundamental level — not through surface-level patches that bot detectors are designed to catch.