Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Amazon product extraction — sample output

Product details, reviews and pricing pulled from live Amazon product pages into one flat record per ASIN.

Two samples, not one — because one sample proves nothing. Amazon serves several different detail-page layouts, and a scraper built against one returns nulls on another. These are deliberately from different categories:

File Product What it demonstrates
sample_B0DBR3DZWG.json Kingston NV3 1TB NVMe SSD 10-row technical spec table, 27% promotion, price vs list_price
sample_B0CFQ5T5F6.json LISEN USB-C cable 5-pack different page layout, 5 spec rows

Both captured from live pages. 10/10 reviews complete in each.

Schema

{
  "asin":         "B0DBR3DZWG",
  "url":          "https://www.amazon.com/dp/B0DBR3DZWG",
  "title":        "Kingston NV3 1TB M.2 2280 NVMe SSD | PCIe 4.0 Gen 4x4 ...",
  "brand":        "Kingston",
  "bullets":      ["...", "..."],          // feature bullets
  "specs":        { "Digital Storage Capacity": "1 TB", ... },
  "images":       ["https://m.media-amazon.com/images/I/..."],
  "price":        135.84,
  "list_price":   186.89,
  "currency":     "EUR",                   // recorded, never assumed — see below
  "promo_text":   "-27%",
  "availability": "In Stock",
  "rating":       4.7,
  "review_count": 13524,
  "reviews": [
    { "rating": 5.0, "title": "...", "body": "...",
      "date": "Reviewed in the United States on June 28, 2026",
      "verified": true }
  ],
  "scraped_at":   "2026-08-10T05:03:00+00:00"
}

Reviews carry no reviewer identity — no name, profile link or ID. Only the rating, text, date and verified-purchase flag, because nothing else is needed to analyse a product and collecting it would mean holding personal data for no reason.

Four layout traps behind these numbers

Each one produces a scraper that looks correct on the ASIN you tested and then quietly returns nulls across a real catalogue.

1. The price is in a hidden node. The authoritative price lives in .a-offscreen, which is visually hidden. Selenium's .text returns "" for anything not rendered, so it silently loses the price on every product. textContent is required.

2. Spec cells contain inline JavaScript. textContent walks every descendant including <script>, and Amazon inlines JS inside detail-table cells — so spec values come back as minified JavaScript. script/style/noscript have to be stripped from the DOM before reading.

3. The review hooks were renamed. data-hook="review-title" and review-body became reviewTitle and reviewText. Most published code still uses the old names and returns zero reviews today. Both forms need querying, since Amazon A/B-tests between them.

4. Prices are localised by exit IP. The same ASIN returns USD from a US IP and EUR from a European one — these samples were captured from an EU host, hence EUR. On a scheduled job whose exit location varies, you get silently mixed currencies in a single column and nothing flags it. The exit region has to be pinned and currency recorded per row.

Long spec cells are also rendered twice — full text plus a truncated copy ending in "… See more" — so naive reads return the value doubled.

Blocked pages

A block page returns 200 OK. Parsed as data it yields "0 results" rather than an error, and a daily feed quietly fills with gaps nobody notices for weeks. Every response is classified before extraction — WAF challenge, captcha, rate-limit, or un-hydrated shell — and only then does the run decide whether to retry, rotate or log. That machinery is open source: stealth-scrape.

Note

Amazon's Terms of Service prohibit automated access. This repository contains sample output only, to demonstrate field coverage and page-layout handling. It reads public product pages and collects no personal data. Check the ToS and robots.txt of any site before pointing a scraper at it.


Want a specific ASIN from your own catalogue in this format? Ask — it takes a few minutes and costs you nothing to verify.

About

Sample output from live Amazon product pages — details, specs, pricing and reviews as structured JSON, plus the page-layout traps that silently break most scrapers.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors