Evidence · first-party tested/Best AI Tools to Scrape Web Pages Into Clean Markdown or Structured Data
Captures the title, pricing, and inventory layout, but the output still includes raw backend code artifacts, media-matrix noise, and uncleaned global link trees.
What was measured
Output Quality
Conceptually matches the prompt and is visually usable.
decisive for this rankingtransformation
Whether the result matches the page and is actually usable is the main outcome the ranking is trying to measure. (3 of 3 judges)
What was given, what came back
Test input: Nike Air Force 1 '07 size options extraction · mixed
Input — what we sent
Input, verbatim
https://www.nike.com/t/air-force-1-07-mens-shoes-jBrhbr/CW2288-111 — Wait for the size selection options to fully render. Extract the product name, price, and a list of all available shoe sizes.
A Nike product page with client-side JavaScript hydration used to test whether a headless scraper waits for dynamic DOM content before extracting product details and all available shoe sizes.
Output — unretouched

Firecrawl scrape result for a Nike product page in Markdown format.
Also checked on this input — same tool, 7 other criteria
Input Handling✓ WorkedAccepted the dynamic Nike product URL through the standard scrape path and started extraction without routing or access errors.Interaction Stability✓ WorkedReliably waited for client-side hydration and captured the complete size set, from M 5 / W 6.5 through M 18 / W 19.5.JS DOM Hydration◐ MixedCaptures hydrated product content but leaves substantial non-content noise in the output, including raw backend code artifacts and raw media-attachment matrices.JS DOM Hydration✓ WorkedWaits through client-side hydration and captures the dynamically loaded size inventory, spanning the full visible range from M 5 / W 6.5 through M 18 / W 19.5.JS DOM Hydration✓ WorkedWaits for client-side hydration and captures the complete size-selection grid, spanning M 5 / W 6.5 through M 18 / W 19.5.Visual Spatial Awareness⚠ StruggledThe output kept the target product data but failed to clean surrounding page chrome, packing in global localization links, background asset tags, and raw image URL trees.Visual Spatial Awareness◐ MixedCan surface the hydrated inventory information, but does not clean surrounding layout noise such as localization links, background asset tags, and raw image URL trees.
Provenance
- Observation
- eb1e2302-fa59-4589-9f78-db736c2d5f77
- Evidence run
- 06e1dbd6-5518-4af8-aa1a-735259a75b4f
- Study
- Scrape Web Pages Into Clean Markdown or Structured Data Using AI
- Research task
- 86b9jm3a3
- Tested at
- Jun 23, 2026
- Source
- first-party
- Evidence state
- verified
- Proof shown
- input + output shown
- Cost / latency
- not captured
- Repeat run
- not captured
- Tester
- not captured
The last three rows are honest blanks, not placeholders — our capture has no field for them yet.
Query this
get_evidence({
tool: "firecrawl"
})MCP · mcp.aidemos.com/api/mcp
Free with attribution.
Same input, same check — 3 other tools
measured on Output Quality
Jina AI Reader◐ MixedIt recovered the product title and the $115 price, but the result was padded with image/link markup and navigation artifacts rather than a clean product-only extract.Skyvern✓ WorkedReturns accurate product data for the hydrated page, including the correct product name Nike Air Force 1 '07 and a long size list; the visible output shows 14 fully readable size pairs from M 7 / W 8.5 through M 14 / W 15.5.Spider⚠ StruggledPreserved the product title and $115 price, but omitted the dynamic size-selection and inventory section, leaving the result incomplete.
This evidence is published in
Real inputs and real outputs, no retouching · every cell queryable via API & MCP · aidemos.com