CloakBrowser Scraper
Pricing
from $30.00 / 1,000 scrape events
CloakBrowser Scraper
CloakBrowser Stealth Scraper is an Apify Actor for stealth cloak web scraping on protected websites, with JSON, HTML, or Markdown output, screenshots, interaction steps like click and scroll, session reuse, cookies, robots bypass, and Standby mode for real-time scraping APIs. Scrape with confidence!
Pricing
from $30.00 / 1,000 scrape events
Rating
0.0
(0)
Developer
Mark Fulton
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
CloakBrowser Stealth Scraper
A simple Apify Actor for scraping pages that often block ordinary browser automation.
Built on CloakBrowser, it helps you extract content, take screenshots, and handle lightweight interaction flows without building your own browser stack.
What it does
- Scrape one URL or multiple URLs
- Return markdown, html, or structured json
- Run interaction steps before extraction, including:
waitwaitForSelectorclickhovertypepressselectscrollgotoscreenshot
- Save screenshots to the Apify key-value store
- Reuse browser sessions with persistent profiles
- Import and export cookies or Playwright-style storage state
- Serve requests in Apify Standby mode
Best for
- Protected article scraping
- Product page extraction on defended sites
- Flows that need a cookie click, search, login step, or wait before extraction
- Screenshot APIs for blocked pages
- Reusable browser sessions across multiple runs
- Real-time scraping endpoints with Standby mode
Output formats
Markdown
Clean text output converted from the extracted HTML.
HTML
Raw page HTML, or the selected element HTML if you pass a CSS selector.
JSON
Structured content including:
titleexcerptbylinesiteNamelangtextheadingslinksimages
Example input
{"url": "https://example.com","outputFormat": "json","screenshot": true,"humanize": true,"usePersistentContext": true,"waitUntil": "load"}
Example interaction steps
[{ "action": "waitForSelector", "selector": "button.accept-cookies", "optional": true },{ "action": "click", "selector": "button.accept-cookies", "optional": true },{ "action": "type", "selector": "input[type=search]", "text": "running shoes", "delayMs": 80 },{ "action": "press", "key": "Enter" },{ "action": "wait", "ms": 2500 },{ "action": "screenshot", "fullPage": false }]
Session support
You can keep or move session state in three ways:
Reuse a named browser profile
{"usePersistentContext": true,"sessionProfileName": "my-shop-session"}
Import an existing session
Load session state with storageState, storageStateKey, cookies, or localStorage.
{"url": "https://example.com/account","storageStateKey": "MY_LOGGED_IN_STATE","outputFormat": "json"}
Export a fresh session after the run
{"exportStorageState": true,"exportStorageStateKey": "LATEST_STORAGE_STATE","exportCookies": true,"exportCookiesKey": "LATEST_COOKIES"}
Standby mode
When started in Apify Standby mode, the Actor exposes:
GET /GET /scrape?url=https://example.com&outputFormat=markdownPOST /scrape
It also handles the Apify readiness probe automatically.
Example standby request
curl -X POST "https://your-standby-url/scrape" \-H "content-type: application/json" \-d '{"url": "https://example.com","outputFormat": "json","screenshot": true}'
Example output
{"requestedUrl": "https://example.com","finalUrl": "https://example.com/","title": "Example Domain","outputFormat": "markdown","selector": null,"session": {"profileName": "default","importedStorageStateKey": null,"importedCookieCount": 0,"importedLocalStorageOriginCount": 0},"screenshot": {"key": "screenshots-example.com-1716161616161-a1b2c3d4.png","contentType": "image/png"},"artifacts": [],"content": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission.","scrapedAt": "2026-05-19T23:53:11.140Z"}
Example input files
Ready-made examples live in ./examples:
- ./examples/basic-markdown.json
- ./examples/interaction-search.json
- ./examples/bot-hardened.json
- ./examples/standby-post-body.json
- ./examples/session-import-export.json
Notes
- Hard targets usually work best with solid proxies.
- Geo-targeted proxies benefit from matching locale and timezone settings.
- Heavy JavaScript pages may need extra waits or interaction steps.