// blog

Field notes from the web data layer

Engineering deep-dives, product updates, and practical guides on getting past bot detection, structured extraction, and shipping scrapers you never have to babysit.

RSS feed

How to get LLM-ready data (markdown or JSON) from any URL

How to get LLM-ready data from any URL: pull specific fields as JSON, or strip a page to its clean content, with PDFs converted to markdown automatically.

▸guide5 min

What is structured data extraction?

Structured data extraction turns a web page into schema-validated JSON by naming the fields you want, not the CSS selectors that break when a site redesigns.

▸guide5 min

Introducing webscrape.ai: the web, as an API

Send a URL and a description of the fields you want, and get clean, schema-validated JSON back in one call, with the proxies and browsers handled for you.

▸launch3 min

How to turn a product page into JSON in one call

How to scrape a product page into JSON in one API call: send the URL plus the fields you want, get schema-validated data back, and pay only on success.

▸guide5 min

How to pull structured data out of an HTML table

How to pull structured data out of an HTML table in one API call: describe the columns you want and get each row back as schema-validated JSON, no selectors.

▸guide5 min

Build a scraping pipeline without writing code

A recurring scraping pipeline by hand is a browser script, hand-written selectors, a proxy pool, and a babysat cron job. SmartBrowse builds it from clicks.

▸launch3 min

Why your scraper returns null after a redesign

Why your scraper returns null after a redesign: a catalog of the silent failure modes behind an empty result, and how to turn page drift into a warning instead.

▸engineering6 min

Stealth mode: when to flip it on, and what it costs

Stealth mode runs a hardened browser that reads as a real visitor. Flip it on for sites that block the default fetch, and know the surcharge before you do.

▸engineering5 min

One wallet for proxies, browsers, and extraction

Web scraping at scale usually arrives as three bills: proxy bandwidth, browser minutes, and model tokens. Here's the same job priced as one credit number.

▸guide4 min

JSON Schema or a plain-language prompt: which to hand the extractor

Plain-language prompt or JSON Schema for AI extraction? You always send a prompt; an output_schema optionally pins field names and types. When to add one.

▸guide4 min

How to scrape a site that keeps blocking you

A 403, a 429, or a blank page usually means a site blocked your scraper. How to read the failure and get the page back, from a retry to a stealth browser.

▸guide6 min

When you need a full browser, and when a plain fetch is enough

A headless browser is the right tool for a fraction of pages: those that render with JavaScript or actively block a plain fetch. Here's how to tell which.

▸engineering5 min

Why structured extraction beats CSS selectors

Structured extraction vs CSS selectors: hand-written selectors break on a redesign; describing the data survives it. How we keep the AI version repeatable.

▸engineering4 min

Beating bot detection without overpaying for it

Not every page needs a full browser to beat bot detection. Our fetch stack defaults to plain HTTP with a real browser's fingerprint, and saves the stealth browser for the targets that actually need it.

▸engineering4 min