What Your Genre's Top 100 Actually Looks Like, in One Spreadsheet

Before starting a new book, most authors do some version of market research: skim the genre's current bestsellers, notice a few things that keep showing up, and write down some impressions. That's useful, but it's a sample size of maybe ten or fifteen books, filtered through whatever you happened to click on and however long your patience for reading blurbs lasted that afternoon. It tells you what you noticed, not what's actually true across the market.

A genre's Amazon Top 100 list is a much better sample - a hundred ranked, currently-selling titles sitting in a browser tab. The problem is what it takes to turn that list into something you can actually analyze: clicking into a hundred listings one at a time, copying the rank, category, blurb, page count, and price into a spreadsheet by hand, and either giving up somewhere around book thirty or losing an afternoon to it. This post walks through what that research pass looks like done as a few clicks of in-browser array extraction instead of a manual copy job, and what a spreadsheet of all hundred rows tells you that a skim of the top ten doesn't.

Why the manual version stalls before it becomes data

The friction isn't any single click - it's that there's a hundred of them, each one requiring you to open a listing, find the same handful of facts on the page, alt-tab to a spreadsheet, and type them in correctly before doing it again. Most people doing this by hand either stop early, once they've seen "enough" to feel like they have a sense of the market, or they push through and end up with a spreadsheet full of typos and skipped rows from fatigue partway through. Both outcomes produce the same problem: a sample too small or too sloppy to actually answer the question that sent you to the list in the first place.

That question is usually some version of "what's actually working in this genre right now" - and answering it honestly requires the full hundred rows, not the ones you had patience for.

What a hundred rows tells you that ten doesn't

A skim of the top ten bestsellers tells you what a handful of outliers look like. A full hundred rows, sorted and filtered in a spreadsheet, tells you about the market itself:

None of that is visible from ten data points held in your head. It only shows up once the full list is sitting in rows and columns you can sort.

Why this needs the actual data, not just a look at the page

It's tempting to think a screenshot of the list, or a quick read-through, would tell you most of the same thing. It doesn't, for a specific reason: a screenshot only captures what's visually on screen at the moment you take it. A blurb truncated behind a "read more" toggle, a page count listed only on the product's own page rather than the results list, a category tag that only appears on hover - none of that makes it into a picture of the page, and none of it is something you can sort, filter, or count once it's just an image or a memory of skimming it.

Extracting the underlying data instead of a picture of it means the blurb text, the page count, and the category tag all end up as actual values in a spreadsheet cell, not pixels you'd have to re-read one row at a time to compare. That's the difference between "I skimmed the list and it felt like shorter books were doing well" and being able to actually sort a page-count column and see the distribution.

Imagine an author running this pass

Picture an author about to start her next book in the genre she writes in. Before outlining, she wants to know what's actually selling right now, not what sold when she last checked a year ago. She opens the Top 100 bestseller list for her genre on Amazon, turns the webSlinger browser extension on, and, instead of opening listings one at a time, clicks the Array button. webSlinger draws a box around every entry it detected as part of the list. She right-clicks one entry and a picker appears listing the fields available in it - rank, category tag, blurb, page count, price - each shown with the actual value it would extract, so she can see it found the right things before committing. She ticks the fields she wants and confirms.

That one field selection is enough. webSlinger has already recognized the other ninety-nine entries as instances of the same repeating structure, so the fields she picked on one entry apply to all of them. A few seconds later, a hundred rows land in her clipboard, formatted as a table with semantic column labels, ready to paste straight into a spreadsheet. What would have been an afternoon of clicking and retyping becomes a few clicks and one paste.

From there it's ordinary spreadsheet work: sort by page count to see what length is actually clustering near the top of the list, scan the blurb column for repeated phrasing, group by price to see where her planned release would land relative to everyone else on the list. She's positioning the new book against what the list shows her, not against a guess.

How the extraction itself works

Nothing about that pass involves writing a selector, a script, or a line of code. webSlinger's array-extraction mode is built specifically for repeating page structures like a ranked list, and the detection is the interesting part: an information-theoretic MDL (minimum description length) algorithm decides which entries and which fields actually belong to the array - an approach unique to webSlinger, and the reason it finds the right rows and the right columns even on messy real-world pages. Picking a field once on one entry is enough for the system to know where that same field sits in the other ninety-nine, and the picker shows the real value each field would extract before anything is committed - you see it resolved to the right data, not just something that looks plausible. After the pull, the extraction appears in the overlay's validation log: mouse over the entry to preview the extracted table, or use the download arrow beside it to save the same data as JSON or CSV.

The extension also assigns readable column names on its own - pageCount, category, blurb - rather than leaving you to rename raw markup labels afterward, using the same semantic field-labeling that's available on every tier, including the free one. And the output isn't a raw text dump: array extractions assemble into a proper table with column headers, copied to the clipboard in a format Excel and Google Sheets both paste in cleanly, so the row that says "paste straight into a spreadsheet" is describing what actually happens, not rounding up.

If the genre's Top 100 list is split across multiple result pages rather than one continuous scroll, the same pass carries over - the detection was never tied to the specific hundred elements on page one, only to the structural pattern of the list. Load page two, click the Array button again, pick the same fields, and the next batch of rows arrives the same way; append it under the first batch and the full hundred are in one spreadsheet.

The question that comes after the first pull

A single pass answers "what does the market look like right now." The next question tends to follow naturally once that spreadsheet exists: does this still hold up in a month, or during the next big release window in the genre? Getting a fresh snapshot later means doing the same short pass again - open the list, click Array, pick the fields - a minute of clicking, done whenever she thinks to open the page.

Making that happen automatically - recording the task once as a session map, having a script generated from it, and scheduling that script so a fresh snapshot shows up without anyone remembering to go click it - is where webSlinger's paid tiers pick up from the free one. Recording and unattended runs belong to the paid tiers; the free Scraper tier is a manual pass each time. That's a natural next step once the same manual extraction has proved useful more than once, not a requirement for getting value out of the first pass.

How to try it

The free Scraper tier covers exactly what this case study describes: turn the extension on over a repeating list, click the Array button, right-click one entry, and pick the fields you want from the picker - no code, no API key, no signup wall beyond installing the extension. Open a ranked list you actually care about, run the pass once, and see what lands in the clipboard before deciding whether it's worth building a habit around.