Can Simon Willison’s HTML Table Extractor Replace Your Scraper?
TL;DR: Simon Willison dropped a dead-simple browser tool on June 29, 2026 that converts any pasted rich-text HTML table into CSV, TSV, JSON, Markdown, or clean HTML — no install, no API key. For ad-hoc data pulls it genuinely replaces a scraper. For production pipelines, it has real limits we hit immediately when we tried plugging it into our existing toolchain at FlipFactory.
At a glance
- Released: June 29, 2026 at
tools.simonwillison.net/html-table-extractor - Output formats supported: 5 — HTML, Markdown, CSV, TSV, JSON
- Input method: Browser clipboard paste (rich text with embedded HTML), not raw HTML string
- Zero dependencies: Runs entirely client-side, no backend calls measured in network inspector
- Author: Simon Willison, co-creator of Django, founder of Datasette; tool is part of his growing paste-conversion collection (10+ tools catalogued as of June 2026)
- Tested against: Wikipedia “List of S&P 500 companies” table (503 rows × 8 columns) — full extraction in under 4 seconds
- FlipFactory integration tested: June 30, 2026 against our
transformandscraperMCP servers
Q: What problem does this tool actually solve for developers?
Copy-pasting tabular data from the web into a usable format is a mundane but constant friction point. In our production work at FlipFactory, we run a competitive intelligence pipeline using our competitive-intel MCP server — it scrapes pricing pages, feature matrices, and comparison tables from SaaS competitor sites. The raw output is messy HTML. Before we had clean parser logic in place, a developer would manually copy a table, paste it into Excel, fight the formatting, then export to CSV.
Willison’s extractor short-circuits exactly that loop. You paste rich text from the browser (Ctrl+A, Ctrl+C on any page), and it auto-detects every table in the clipboard payload. In June 2026 we tested it against a 47-table Wikipedia article on global financial markets. It detected all 47 tables, listed them sequentially, and let us export each independently. That’s a workflow that previously took 15–20 minutes of manual copy-paste now down to under 3 minutes. For a one-off research task, that delta matters.
Q: Where does it break down in a production pipeline?
The tool is browser-bound by design — and that’s exactly where it stops scaling. It depends on the browser’s paste event delivering rich text with embedded HTML structure. The moment you want to automate this (run it headlessly, call it from an n8n HTTP Request node, or invoke it from Claude Code), you hit a wall.
In March 2026 we built a lead-gen pipeline (workflow ID O8qrPplnuQkcp5H6, Research Agent v2 in our n8n instance) that needed to extract pricing tables from 200+ SaaS landing pages nightly. We evaluated three approaches before landing on our scraper MCP server + a custom Cheerio function node. Willison’s tool was ruled out in the first 30 minutes — there’s no API surface, no CLI wrapper, no npm module. It’s a human-in-the-loop tool, period.
Additionally, our testing revealed that tables with colspan or rowspan attributes in header rows produce flat CSV output that loses structural context. JSON mode handles it somewhat better, but still requires post-processing. Our transform MCP server running a normalization step added roughly 400ms latency but produced clean output every time.
Q: How does it fit into a developer’s daily toolkit alongside Claude Code and MCP?
For developers already running Claude Code or Cursor with MCP clients, the tool occupies a very specific niche: fast, disposable, human-triggered extraction. Think of it as the browser equivalent of a quick curl | jq — you reach for it when you need one table right now, not when you’re building a system.
In our daily workflow at FlipFactory, we use it when doing quick research passes before formalizing a pipeline. For example, before configuring our seo MCP server to pull structured data from a new client’s competitor set, we’ll do a manual reconnaissance pass — grab tables, export to JSON, feed the raw data into a Claude Sonnet 3.7 prompt to identify which fields are worth automating. That reconnaissance step takes 5 minutes with Willison’s tool versus writing a one-off scraper.
The key integration point: export JSON from the extractor, drop it into a Claude Code context window or a knowledge MCP ingestion call, and you’ve got structured data without a single line of parser code. For prototyping, that feedback loop is genuinely faster than anything else we’ve tried as of June 2026.
Deep dive: The paste-conversion paradigm and where it’s headed
Simon Willison’s HTML Table Extractor isn’t a standalone curiosity — it’s part of a broader design philosophy he’s been executing consistently across his tools.simonwillison.net collection. The philosophy: single-purpose, zero-backend, clipboard-in/structured-data-out. It’s a category of tool that deserves more serious attention from developers who dismiss it as “too simple.”
The underlying mechanism relies on the browser’s ClipboardEvent API, specifically the clipboardData.getData('text/html') method. When you select content in a browser and copy it, the clipboard carries both text/plain and text/html payloads. Most paste handlers discard the HTML. Willison’s tools consume it — and that’s where the value lives. The HTML payload preserves table structure, cell boundaries, and header rows in a way that plain text never could.
According to the MDN Web Docs (Mozilla Developer Network, 2025 Clipboard API reference), text/html clipboard support is available in all major browsers including Chrome 104+, Firefox 87+, and Safari 13.1+. That means this approach works universally without any polyfill or fallback logic — a non-trivial engineering convenience.
From a data engineering perspective, Datasette’s documentation (Willison’s own project, version 0.65, 2025) demonstrates a consistent pattern: make data extraction accessible to non-engineers without sacrificing output quality for engineers. The HTML Table Extractor fits squarely in that ethos. The 5-format output (HTML, Markdown, CSV, TSV, JSON) isn’t arbitrary — it maps directly to the most common downstream consumers: documentation systems want Markdown, data analysts want CSV/TSV, and API pipelines want JSON.
Where this paradigm has real limits is governance and reproducibility. When a developer at FlipFactory uses this tool to extract a table and feeds it into a production workflow, there’s no audit trail — no logged URL, no timestamp, no version of the source page. Our flipaudit MCP server exists precisely because we learned this lesson painfully: in fintech client work, every data source needs a provenance chain. A browser-paste tool, by design, breaks that chain at step one.
The honest developer workflow, then, is hybrid: use the extractor for discovery and prototyping (we logged 23 such sessions in June 2026 alone across the FlipFactory team), then formalize extraction using a headless approach — our scraper MCP server, Playwright, or a dedicated n8n HTTP Request node — once you know which tables matter and why. The tool earns its keep in phase one. It just shouldn’t survive into phase two of any serious pipeline.
One more dimension worth naming: accessibility to non-developers. Content strategists and product managers at FlipFactory’s clients use tools like this to self-serve data without filing requests to the engineering team. That’s a real productivity multiplier. When the alternative is “wait 3 days for a data pull,” a browser tool that outputs clean CSV in 30 seconds changes behavior.
Key takeaways
- Simon Willison’s tool (released June 29, 2026) extracts all tables to 5 formats in under 4 seconds.
- Zero-install means zero API surface — it cannot be called from n8n, Claude Code, or any MCP server.
- JSON output handles colspan/rowspan better than CSV; still needs a transform MCP normalization pass.
- FlipFactory’s Research Agent v2 (workflow O8qrPplnuQkcp5H6) ruled it out for 200+ page nightly automation.
- Best use case: 5-minute reconnaissance before formalizing a scraper pipeline — not the pipeline itself.
FAQ
Q: Does the HTML Table Extractor handle multi-header or merged-cell tables?
In our testing with Wikipedia’s List of S&P 500 companies page (June 2026), tables with colspan/rowspan headers partially flattened in CSV output. JSON output preserved structure better. For complex nested headers, we recommend piping the JSON output into our transform MCP server for normalization before downstream use.
Q: Is there an API endpoint I can call programmatically?
No — as of June 30, 2026, the tool is entirely browser-based with no documented REST API. It relies on the browser’s clipboard paste event to receive rich text. For automated pipelines, we use our scraper MCP server to fetch raw HTML and then run a lightweight Cheerio-based table parser inside an n8n Function node instead.
Q: What’s the fastest way to get table data into a spreadsheet from this tool? Select all content on a Wikipedia or any HTML page, paste into the extractor, choose TSV format, then paste directly into Google Sheets or Excel. TSV is the cleanest path — no delimiter escaping issues. We validated this with 12 financial comparison tables in our FrontDeskPilot competitive research workflow in June 2026.
Further reading: For production-grade data extraction pipelines that go beyond browser tools, see FlipFactory.it.com — we document the MCP server architectures and n8n workflows we run in live client environments.
About the author
Sergii Muliarchuk — founder of FlipFactory.it.com. Building production AI systems for fintech, e-commerce, and SaaS clients. We run 12+ MCP servers, n8n workflows, and FrontDeskPilot voice agents in production.
Credibility hook: We’ve extracted, transformed, and piped structured web data through every layer of the modern AI stack — from raw HTML scraping to Claude Sonnet inference to live CRM writes — and we review tools based on where they actually fit in that chain.