Headless browser
A headless browser is a real web browser that runs without a visible window, controlled by code, so it can load pages, run JavaScript, and render content exactly as a normal browser would, just without a screen.
A headless browser is a full browser engine running without a graphical interface. It does everything a normal browser does (requests resources, executes JavaScript, builds the page layout) but it is driven by a program rather than a person clicking around. Headless Chrome is the most common example and is widely used for testing, screenshots, and data extraction.
Headless browsers matter for scraping because many pages do not ship their content in the initial HTML. They load a skeleton and then fetch and render data with JavaScript. A plain HTTP request sees the empty skeleton, while a headless browser sees the fully rendered page, the same thing a human would see.
Extracto loads each target URL in a real headless Chrome instance, then passes the rendered page text and metadata to an LLM along with your JSON Schema. This means content that only appears after rendering is visible to the extraction step. Beyond rendering, Extracto adds a managed anti-bot bypass layer with proxies handled for you, so it works on any public HTTPS URL, including JavaScript-rendered and anti-bot-protected pages. A field comes back as null only when it is genuinely absent from the page.
Examples
Rendering a JavaScript page
A page that loads its article body through a client-side framework looks empty to a plain HTTP fetch, but a headless browser executes the JavaScript first, so the full text becomes available for extraction.
Reading metadata
After rendering, a headless browser exposes the page title, meta tags, and any embedded structured data, which Extracto can hand to the LLM alongside the visible text to fill your schema accurately.
See also
Headless browser: FAQ
Why use a headless browser instead of a simple HTTP request?
Does a headless browser get around anti-bot systems?
Want to put this into practice? Extracto extracts structured data from a URL using a JSON schema, with the result validated before it leaves the API. Try the live demo or read the docs.