{
  "meta": {
    "source": "Scrapify Playground",
    "description": "Sample blog posts API for scraping practice",
    "count": 10
  },
  "posts": [
    { "id": "b-01", "slug": "intro-to-css-selectors", "title": "Intro to CSS selectors for scrapers", "author": "Ava Chen", "published": "2026-03-12", "tags": ["selectors", "html"], "excerpt": "How to choose resilient selectors that survive minor layout tweaks." },
    { "id": "b-02", "slug": "http-vs-browser", "title": "HTTP client or browser automation?", "author": "Marcus Lee", "published": "2026-03-28", "tags": ["http", "playwright"], "excerpt": "A practical decision tree for static pages, SPAs, and hybrid sites." },
    { "id": "b-03", "slug": "pagination-patterns", "title": "Pagination patterns that break crawlers", "author": "Sofia Rahman", "published": "2026-04-05", "tags": ["pagination", "crawling"], "excerpt": "Page numbers, cursors, infinite scroll, and how to model each cleanly." },
    { "id": "b-04", "slug": "respectful-scraping", "title": "Respectful scraping basics", "author": "Ava Chen", "published": "2026-04-19", "tags": ["ethics", "robots"], "excerpt": "Rate limits, robots.txt, caching, and when not to scrape at all." },
    { "id": "b-05", "slug": "parsing-tables", "title": "Parsing HTML tables without pain", "author": "Jonah Park", "published": "2026-05-02", "tags": ["tables", "parsing"], "excerpt": "Headers, colspan, and converting table rows into structured records." },
    { "id": "b-06", "slug": "json-first-scraping", "title": "When the best scrape is an API call", "author": "Marcus Lee", "published": "2026-05-21", "tags": ["api", "json"], "excerpt": "Find the XHR your browser already makes — and reuse it responsibly." },
    { "id": "b-07", "slug": "ecommerce-search-patterns", "title": "Scraping marketplace search results", "author": "Sofia Rahman", "published": "2026-06-04", "tags": ["ecommerce", "search"], "excerpt": "Sponsored rows, split prices, review counts, and result pagination." },
    { "id": "b-08", "slug": "product-detail-pages", "title": "Product detail pages that look simple", "author": "Jonah Park", "published": "2026-06-18", "tags": ["ecommerce", "pdp"], "excerpt": "Buy boxes, variants, specs tables, and review blocks in one document." },
    { "id": "b-09", "slug": "waiting-strategies", "title": "Waiting strategies that don’t flake", "author": "Ava Chen", "published": "2026-07-01", "tags": ["playwright", "timing"], "excerpt": "Prefer network and selector readiness over fixed sleeps." },
    { "id": "b-10", "slug": "data-cleaning-pipelines", "title": "From raw HTML to clean records", "author": "Marcus Lee", "published": "2026-07-12", "tags": ["etl", "cleaning"], "excerpt": "Normalize prices, dates, stock flags, and dedupe product IDs." }
  ]
}
