TL;DR
Structured data has a defined shape (fields, types, rows) that machines can query directly, like a JSON object or a table. Unstructured data is free-form content like article text or reviews with no fixed schema. Web extraction is largely the work of turning the unstructured HTML of a page into structured data you can use.
The Core Distinction
Structured data fits a predefined model. A product with name, price, and in_stock fields is structured: every record has the same shape, types are known, and you can filter, sort, and join it. Databases, spreadsheets, and JSON APIs are structured.
Unstructured data has no such shape. The paragraphs of a blog post, the text of a review, an image, a PDF's prose, all carry meaning but not in labeled fields. You cannot query "the price" from a wall of text without first finding and extracting it.
HTML sits awkwardly between the two: it has structure (tags, attributes) but that structure describes presentation, not your data model. A <div class="price"> is markup, not a typed field, which is why extraction is needed.
Why It Matters for Scraping
The whole point of web extraction is the conversion: take the semi-structured HTML of a page and produce structured data your systems can use. That means deciding your target shape (a schema) and mapping page content onto it. The cleaner that mapping, the more usable the result.
Handling Each Type
- Structured targets (prices, specs, listings): define a schema and extract typed fields. Straightforward once you know the shape.
- Unstructured targets (articles, reviews, docs): either keep them as clean markdown for reading and RAG, or use AI to impose structure (sentiment, topics, entities) on top of the free text.
AI extraction blurs the line usefully: it can read unstructured content and return structured fields, for example pulling rating and pros out of a free-form review.
Key Takeaways
- Structured data has typed fields you can query; unstructured data is free-form.
- HTML is semi-structured markup, not your data model, so extraction is required.
- Structured targets get a schema; unstructured targets get clean text or AI-imposed structure.
How ScrapeGraphAI Handles This
ScrapeGraphAI handles both: scrape returns clean markdown for unstructured reading, and extract turns page content into structured JSON against your schema, including imposing structure on free-form text.