Evidence · first-party tested/Best AI Tools to Scrape Web Pages Into Clean Markdown or Structured Data
Does not wait for client-side hydration long enough; it can capture the title and price but misses the size-selection UI entirely, leaving zero available sizing attributes.
What was measured
JS DOM Hydration
How well the tool waits for and captures content rendered by client-side JavaScript on dynamic pages.
decisive for this rankingtransformation
Capturing JavaScript-rendered content is a core scraping capability for modern web pages. (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

Spider Playground showing scraped Nike product results
Also checked on this input — same tool, 3 other criteria
Output Quality◐ MixedExtracted the product title, category, and price cleanly, but the result remained incomplete because the dynamic size inventory was not captured.Output Quality⚠ StruggledPreserved the product title and $115 price, but omitted the dynamic size-selection and inventory section, leaving the result incomplete.Schema Extraction Integrity◐ MixedIt can still extract static metadata cleanly, such as structural description definitions and basic marketing attributes, even when the dynamic transactional section is missing.
Provenance
- Observation
- b3fb32f1-4d48-4b61-89b4-4e42d4c5910e
- 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: "spider"
})MCP · mcp.aidemos.com/api/mcp
Free with attribution.
Same input, same check — 3 other tools
measured on JS DOM Hydration
Firecrawl◐ MixedCaptures hydrated product content but leaves substantial non-content noise in the output, including raw backend code artifacts and raw media-attachment matrices.Jina AI Reader◐ MixedThe engine can recover static product metadata from a JavaScript-heavy product page, including the title "Nike Air Force 1 '07 Men's Shoes" and the $115 price, but it does not needlessly enrich the dynamic state beyond those static markers.Skyvern✓ WorkedWaits for the client-rendered product page to hydrate and extracts the size grid instead of stopping at the initial shell.
This evidence is published in
Real inputs and real outputs, no retouching · every cell queryable via API & MCP · aidemos.com