Skip to content

What is a scraping browser?

A scraping browser is a real web browser used to collect data, instead of a plain HTTP client. You need one when a site builds its content with JavaScript after the page loads, when you have to click, scroll or log in to reach the data, or when the site checks that it is talking to a real browser. For static pages and JSON APIs, a plain HTTP request is much cheaper and faster.

The term is used in two ways. Most often it means a hosted scraping browser: a remote Chromium that a provider runs for you. You connect your existing Puppeteer or Playwright code to it over a WebSocket (the Chrome DevTools Protocol), and the provider handles scaling, proxies and fingerprints. These are usually billed by bandwidth or session time. It can also simply mean a browser you run yourself, set up for scraping.

Hosted is quick to start and removes infrastructure work. The trade-offs are cost at volume, since browser traffic is heavy and billed per gigabyte or hour, less control over the browser's configuration, and your data passing through a third party. Running your own browser is cheaper at scale and fully under your control, but you manage the machines, the proxies and the browser's fingerprint yourself.

The fingerprint is the part that is easy to overlook. A stock Chrome in a server container reports a software GPU, a Linux font set and a headless user agent, so it looks like exactly what it is. Whatever you choose, the browser should present one consistent, ordinary device, and the proxy's location should match the browser's timezone and language.

Clearcote is the self-hosted option: an open-source Chromium with the fingerprint handled in the engine, which you can run as a standing CDP endpoint with one Docker command. Your Playwright or Puppeteer code connects to it the same way it would connect to a hosted browser, with connect_over_cdp or puppeteer.connect. See deployment and Docker.

Related reading

Q&AWhat is a headless browser?A headless browser runs a full browser engine with no visible window — same rendering and JavaScript, driven by code. It's the backbone of automation, and a frequent detection target.Q&AWhat is a stealth browser?A stealth browser is a real browser engine, driven by Playwright, Puppeteer or Selenium, with the automation tells removed. Tools differ mainly in which layer they fix.Q&AWhat is a timezone / IP mismatch?When a browser's timezone, locale and language don't match the geolocation of its IP (often a proxy), the contradiction flags the session as suspicious.Q&APlaywright vs Puppeteer for stealth: does it matter?Both drive Chromium over CDP, so both leak the same automation artifacts. Stealth comes from the browser binary and launch defaults, not the framework you pick.DocsDeployment — Docker & CDP endpointRun Clearcote as a stealth CDP endpoint: the official Docker image, serve(), and attaching Playwright, Puppeteer or browser-use over CDP with no code change.DocsPlaywright & Puppeteer SDKUse Clearcote as a drop-in Chromium browser for Playwright and Puppeteer, including SDK launch helpers, profiles, persistent contexts, and verified binary downloads.CompareClearcote vs ZendriverZendriver is the community fork of nodriver: fast, async, CDP-only, with open issues and Docker support. Like nodriver it drives a stock Chrome, so the fingerprint is still your machine's. Clearcote changes that fingerprint in the engine, and Zendriver can drive it.

Clearcote puts this into practice

An open-source Chromium with fingerprint control compiled into the engine. A drop-in for Playwright & Puppeteer.

Free for one browser with GitHub. No card.