Data Extractor
Extract tables or selected text from HTML source into structured rows.
Useful details. Out in the open.
1. Provide HTML Source
Paste the page’s HTML source, not its web address. To copy source, open the page, press Ctrl+U, then Ctrl+A and Ctrl+C. Or save it as HTML and use Load HTML. Live URLs are not fetched. Load one .html, .htm or .txt file up to 10 MiB.
2. Extraction Rules
- Right-click the specific data you want on any website and click Inspect.
- Look for its class name (e.g.,
<span class="product-price">). - Type a dot followed by that name into the box above: .product-price
li or h2 (Targets HTML tags)
#main-id (Targets exact IDs)
Each parent match becomes one row. Each field uses the first matching descendant; leave its selector empty to use the parent. Missing elements or attributes export blank. Attributes stay as literal text and are not opened or fetched.
Keep the detail.
Find the structure.
Convert saved HTML into rows you can inspect and export. Choose tables, a single text selector, or structured parent records with named text and attribute fields.
How to extract your data
- Provide the source. Load a local HTML/text file or paste its markup. A live website URL is not fetched.
- Choose an approach. Detect tables, use a text selector, or choose Structured records and define a parent selector plus named fields. Attribute fields return literal values such as href.
- Inspect the result. Run extraction and browse 50-row pages. Check headers, merged cells and missing field values; edits to the source or rules invalidate the old result.
- Save the rows. Export the full extraction as CSV. Keep your source document for context and future corrections.
Which sources and extraction modes are supported?
Load one local .html, .htm or .txt source file up to 10 MiB, or paste HTML. Choose automatic tables, a single CSS text selector, or structured records with named fields. This tool does not fetch live URLs, execute website scripts, read PDFs or perform OCR.
How does structured extraction work?
Each parent-selector match becomes one record. Define up to 30 uniquely named fields using cleaned text or a literal attribute value. A field selector uses its first matching descendant (including direct-child selectors such as > .price; sibling selectors are unsupported); leave it blank to use the parent itself. Missing elements or attributes become blank cells. Links and other attributes are not opened, resolved or fetched.
How are table spans and multiple tables handled?
Rowspan and colspan repeat cell text across covered positions; rowspan zero is bounded to the current row group. Nested tables are extracted separately and removed from the containing cell text. Tables with identical, unambiguous explicit headers in the same order are combined, with a table identifier column for multiple sources. Different headers stay separately selectable and exportable. Headerless tables remain separate and receive generated column names, preserving their first data row. Leading header rows are combined into column labels; shorter rows are padded.
Does CSV export include every preview page?
Yes. Preview pages contain 50 data rows, excluding the first extracted header row from the data-row count. CSV includes the full extraction and header regardless of the page shown. Source or rule edits hide stale results until you extract again. Cleaned text and span expansion mean this is not a lossless markup copy.
Is supplied HTML executed, uploaded or saved?
Extraction parses a detached document and displays results as text rather than running supplied scripts or activating extracted attributes. Analysis is local; this page loads its CSV helper from this site. Work is not automatically saved and browser memory limits apply. Attribute values and source content remain untrusted data; review exports before sharing or using elsewhere.