Introduction
Single-page applications (built with React, Vue, Angular, Svelte) require different scraping approaches than static HTML sites. The Product Data Scrape team has scraped hundreds of SPA-based retailers. Here are the techniques that work.
Why SPAs Are Different
SPAs don’t render full HTML on the server. JavaScript fetches data from APIs and renders the page client-side. This means requests.get() returns nothing useful — you need to either execute JavaScript or hit the underlying APIs directly.
Strategy 1: Hit the Underlying API (Preferred)
Most SPAs make JSON API calls behind the scenes. Product Data Scrape prefers this approach — APIs are faster, cleaner, and more stable than scraping rendered DOM.
# Instead of scraping the rendered page:
response = await client.get("https://example.com/products") # Returns empty shell
# Hit the underlying API:
response = await client.get(
"https://example.com/api/v2/products?category=electronics&page=1"
) # Returns JSON
Strategy 2: Extract from NEXT_DATA
Next.js sites embed initial data in a __NEXT_DATA__ script tag:
import json
from selectolax.parser import HTMLParser
def extract_next_data(html):
tree = HTMLParser(html)
script = tree.css_first("#__NEXT_DATA__")
if script:
return json.loads(script.text())
return None
data = extract_next_data(response.text)
products = data["props"]["pageProps"]["products"]
Sample Data Extracted from SPA by Product Data Scrape
{
"source_url": "https://example-spa.com/product/wireless-headphones",
"render_strategy": "next_data_extraction",
"extraction_time_ms": 320,
"data": {
"product_id": "PRD-78901",
"title": "Wireless Noise Cancelling Headphones",
"brand": "AudioTech Pro",
"price": {"current": 249.99, "msrp": 299.99, "currency": "USD"},
"specs": {
"battery_life": "30 hours",
"weight": "250g",
"bluetooth": "5.3",
"anc": true
},
"stock_status": "in_stock",
"rating": 4.6,
"review_count": 1842
},
"scraped_at": "2026-03-22T16:45:00Z"
}
How Product Data Scrape Helps
Our Web Scraping API renders JavaScript-heavy SPAs internally — you don’t need to manage a headless browser fleet. Single REST call, get structured JSON back.
Get free API credits from Product Data Scrape →
Contact Us Today!About Product Data Scrape
Product Data Scrape is the leading provider of managed web scraping services and ready-to-use product datasets. We help 200+ brands, retailers, and AI companies turn the messy public web into clean, structured product data.
Our Services: - Web Scraping API — REST API for developers (1,000 free credits) - Scraper as a Service — Custom scrapers built in 7-10 days - Ready Datasets — 100+ pre-built datasets, free 1,000-row samples in 24 hours
Contact: - Website: https://www.productdatascrape.com - Email: sales@productdatascrape.com