Quick Start · Features · API · Limits · Roadmap · English | 中文
Extract rendered web tables from any URL, preview them, and export clean Excel files.
Web Table Extraction is a local web app for collecting tables from documentation pages, API references, data pages, and article pages. It renders the page with Playwright, analyzes native HTML tables plus common table-like structures, previews every detected table, and exports one Excel sheet per table.
It is designed for developers, analysts, researchers, and operators who often need to extract API parameter tables, error code tables, pricing tables, limit tables, or technical documentation tables from modern web pages.
Copying tables from modern web pages is often unreliable: many pages are rendered by JavaScript, some tables are not real <table> elements, and manual copy-paste usually breaks rows, columns, and merged cells.
Web Table Extraction focuses on one practical job: open a URL, render the page, detect useful tables, preview them, and export a clean Excel workbook.
web table extraction · HTML table extractor · Playwright table scraper · export web table to Excel · documentation table extraction · API docs table extractor · JavaScript rendered table extraction
- Render JavaScript-heavy pages before extraction.
- Detect native
<table>elements withrowspanandcolspanhandling. - Extract list-like key/value tables from documentation pages.
- Parse Markdown pipe tables inside code blocks.
- Preview multiple tables with tabs.
- Export all tables or the current table to
.xlsx. - Fall back to static HTML fetching when browser rendering fails.
- Extract API parameter tables from developer documentation.
- Export error code tables from AI model or cloud service docs.
- Convert rendered documentation tables into Excel worksheets.
- Collect pricing, limit, quota, or field-definition tables for analysis.
- Preview and clean multiple tables from a single page before export.
npm install
npm startOpen:
http://localhost:4387
Then paste a URL that contains rendered web tables.
For a local demo page, open:
http://localhost:4387/demo.html
Then paste that demo URL into the extractor.
The demo page is bundled with the project, so you can test the full extraction flow without relying on an external website.
| Home | Extraction Result |
|---|---|
![]() |
![]() |
- Node.js 18+
- A Chromium-compatible browser available through Playwright or installed on the system
If Playwright browsers are not installed, run:
npx playwright install chromiumOn Linux servers, you may also need:
npx playwright install-deps chromiumPOST /api/extract
Content-Type: application/json{
"url": "https://example.com/docs"
}Response:
{
"url": "https://example.com/docs",
"title": "Example Docs",
"extractedAt": "2026-07-01T00:00:00.000Z",
"durationMs": 1200,
"tables": [
{
"id": "table_1",
"title": "Error Codes",
"type": "html-table",
"confidence": 0.98,
"headers": ["Code", "Message", "Description"],
"rows": [["400", "invalid_request", "The request is invalid"]]
}
]
}POST /api/export
Content-Type: application/jsonSend the extraction result or a subset of its tables array. The response is an .xlsx file.
- API parameter tables
- Error code tables
- Pricing or limit tables
- Documentation tables rendered by SPAs
- Markdown tables embedded in docs
- It does not process PDF tables.
- It does not perform OCR on screenshots or images.
- It does not bypass login walls, captchas, or anti-abuse systems.
- Some websites may block automated browser traffic.
URL input
-> Playwright renders the page
-> DOM is cleaned
-> native tables, list-like tables, and Markdown tables are extracted
-> candidates are scored and deduplicated
-> tables are previewed in the browser
-> Excel workbook is generated
src/
server.js Express server and API routes
extractor/
browser.js Playwright rendering and extraction orchestration
nativeTable.js Native HTML table extraction
listTable.js List-like table extraction
textTable.js Markdown table extraction
excel.js Excel workbook generation
normalize.js Shared cleaning, scoring, and normalization helpers
public/ Browser UI
npm run dev
npm testIssues and pull requests are welcome. Good first contributions include new table extraction fixtures, better scoring rules, Docker packaging, CLI support, and browser-extension experiments.
- Add saved extraction history.
- Add CLI batch extraction.
- Add Docker packaging.
- Add confidence explanations for each detected table.
- Add a browser extension that extracts tables from the current tab.
Yes. It uses Playwright to render the page before extracting tables, which makes it more reliable for SPA documentation sites than a simple HTML fetch.
Yes. Each detected table can be previewed in a tab, and exporting all tables creates one Excel sheet per table.
No. The current scope is rendered web DOM extraction. OCR and PDF table extraction are intentionally out of scope.
No. It is a productivity tool for accessible web pages and does not bypass access controls.
API docs, error code pages, pricing pages, technical documentation, article pages with embedded tables, and pages containing Markdown-style tables usually work well.
MIT

