Field notes from the world of data extraction.

Articles, interviews and analysis on how data is gathered, used and fought over — written by the people closest to it.

Extract Summit Austin 2026.

Five takeaways from Extract Summit 2026 Austin

AI is making web scraping faster - but dependable data takes more than working code. Quality, provenance, self-repair, access and responsibility are the new edge.

Robert Andrews
A speed limit sign's speed guidance is replaced with a 403 code.
Access handling

Rate limiting is a roadblock, not a speed limit

Rate limiting sounds like a speed limit, but 93.7% of rate-limited sites block on the very first request. It is an identity check, not a throttle.

Robert Andrews
A classic toy robot waves a protest banner showing "I'm not a robot"
Access handling

CAPTCHA is more than just a puzzle piece

The famously awkward security mechanism has quietly become an invisible behavioral scoring system. Two vendors enable 89% of CAPTCHAs, and the smallest sites use it most.

Robert Andrews
Zyte Developer Community Meetup #2 recap cover: Ship agents that survive the real web, with Demetris Gerogiannis, John Rooney and Konstantin Lopukhin
Announcement

Zyte Developer Community Meetup #2: the recap, slides, and recordings

Recordings, slides, and a rundown of Zyte's second Developer Community Meetup with Humanbound: a live prompt injection attack on a price agent, Zyte CDP managed browsers, and the launch of harness-run.

Ayan Pahwa
Inside Scrapy's RemoteControl extension
How To

Inside Scrapy's RemoteControl extension

Scrapy 2.19's RemoteControl extension runs a small authenticated HTTP server inside every crawl. How it starts, how it's secured, what the code you send can reach, and what you can do with it on a live crawl, plus the traps and what changes under scrapy-zyte-api.

John Rooney
scrapy-mcp-hero

Scrapy MCP: debug your crawl while it runs

Scrapy MCP connects an AI agent to a running Scrapy crawl, using the new Remote Control extension in Scrapy 2.19 to let the agent discover jobs, check status and run Python against the live crawler, all without restarting it.

John Rooney
One Scrapy Spider, Three Browser Setups: Playwright, Patchright, and Zyte
How To

One Scrapy Spider, Three Browser Setups: Playwright, Patchright, and Zyte

One Scrapy spider, three browser setups: stock Playwright, Patchright via the new PLAYWRIGHT_BROWSER_PROVIDER hook, and a remote browser on Zyte over CDP. Same spider and selectors throughout, only the browser changes.

John Rooney
scrapy-jev
Data quality

Stopping a crawl when the data stops looking real with Jev

A Scrapy pipeline that asks a fast, calibrated AI model whether each scraped field still looks real, and stops the crawl when too many don't. What it caught, what it misses, and whether building it was worth it.

John Rooney
Jev, the model that cannot write a word, and where it fits in web scraping(does it?)

Jev, the model that cannot write a word, and where it fits in web scraping(does it?)

Jev by TypeFace AI cannot generate a string, so it cannot extract a field. What it is, how it differs from an LLM, and the one job it earns in a scraping pipeline.

Ayan Pahwa
A spyglass reveals a robot secretly using a web browser with its hand on the mouse.
Access handling

Inside antibot, the arms race you can't see

Only 18.5% of top sites run dedicated antibot, but every one of them chose to. Why it's the most intentional barrier in the stack, and the strongest signal of a hardened site.

Robert Andrews
uv-cheat-sheet
Tool-assisted coding

uv Python cheatsheet: what changed in 0.12 and what still trips you up

uv 0.12 changed several defaults that Python developers rely on—from how `uv init` structures projects to how hash checking and lockfiles behave. This practical cheatsheet tests the differences across versions and highlights the command-line traps most likely to surprise you.

Ayan Pahwa
A firewall surrounds a server computer
Access handling

Firewalls run the web, just not on purpose

Web Application Firewalls run on 92.4% of the top websites, but most arrived bundled with a CDN and were never tuned to resist automated access.

Robert Andrews