Skip to main content gottem  — one API for every scraper.
Education
Verified

Amazon Books Scraper

Extract bestseller book data, ratings, pricing, and author info from Amazon Books. Built on spider-browser .

Get started Docs
target
amazon.com/books
success rate
99.9%
latency
~4ms
Quick start

Extract data in minutes.

amazon-books-scraper.ts
import { SpiderBrowser } from "spider-browser";

const spider = new SpiderBrowser({
  apiKey: process.env.SPIDER_API_KEY!,
  stealth: 2,
});

await spider.connect();
const page = spider.page!;
await page.goto("https://www.amazon.com/best-sellers-books-Amazon/zgbs/books/");
await page.content();

const data = await page.evaluate(`(() => {
  const books = [];
  document.querySelectorAll("[data-asin], [id*='gridItemRoot']").forEach(el => {
    const rank = el.querySelector("[class*='badge'] span, [class*='rank'] span")?.textContent?.trim();
    const title = el.querySelector("a[href*='/dp/'] span")?.textContent?.trim();
    const author = el.querySelector("a[href*='/e/'] span, [class*='author'] a")?.textContent?.trim();
    const rating = el.querySelector(".a-icon-alt")?.textContent?.trim();
    const price = el.querySelector("[class*='price'] span, span[class*='a-price'] span")?.textContent?.trim();
    if (title) books.push({ rank, title, author, rating, price });
  });
  return JSON.stringify({ total: books.length, books: books.slice(0, 20) });
})()`);

console.log(JSON.parse(data));
await spider.close();
ready to run · spider-browser · TypeScript
Extraction

Fields you can pull.

Book titleAuthorRatingReview countPriceFormatRankPublisher
Listings

Course catalog data

Extract courses, instructors, ratings, and pricing from amazon.com/books.

Rendering

Dynamic catalogs

Handle filtered search results, pagination, and lazy-loaded course cards.

Scale

Platform coverage

Scrape entire course catalogs across categories and skill levels.

Related

More Education scrapers.

Start

Start scraping amazon.com/books.

Grab an API key and call the endpoint above. The first request resolves the config; every request after hits cache.