Latest Version 1.21.7: https://chromewebstore.google.com/detail/magic-scraper/lcdaikobgjpakcgbkdedoapnckeobbck?authuser=0&hl=en

A Chrome extension that scrapes any web page's tables and lists into CSV, XLSX, or JSON, with pagination and drill-down.
Visit siteBuilding a dev tool or hiring developers? Get seen here. Become our Sponsor
Playing with video mockup generation for distribution: https://www.youtube.com/watch?v=3oCmoj57Pxs
Magic Scraper v1.21.7
Repeat across: runs one setup over a list of pages. Your page first, then each address in its own tab, which stays open with its own table.
Addresses as pills: paste, edit or remove them, with a count on each. Free runs 2 pages.
Drill-down on every list, with details saved in each tab's table.
Compare with a file: your CRM export (CSV, Excel or JSON) shows which leads are new.
Point at it now reads the whole block you pick.
Slow and protected pages: it waits for pages that load late or show a "Just a moment" check.
Stop works instantly everywhere, and Resume continues where it stopped.
Scheduled runs no longer fail on setups saved without a hand-picked list.
Scheduled CSVs are named with the date.
Exports are named after the page the list starts on.
Privacy: saved runs are kept inside the extension, where websites can't read them.
Playing with video mockup generation for distribution: https://youtube.com/shorts/p7gyyJDzdnM?si=6tZSMEqGgY6S-x1s
Day 7 since Launch:
Uploaded a new demo for v1.20.15
https://youtube.com/shorts/HUvX4Ew8CSE?feature=share
Practice pages — magicscraper.app/demo
• /demo/catalogue — card grid, Next + numbered pager: 54 rows, 6 pages
• /demo/table — plain HTML table: 50 rows, 8 columns
• /demo/scroll — infinite scroll: 8 on load, 40 at the end
• /demo/awkward — a value outside the table: 10 rows + 1 discount
• /demo/shadow — open shadow roots: 12 products, 0 in the light DOM
• /demo/iframe — same-origin iframe: 24 rows, 0 tables in the parent
• /demo/feed — JSON-LD and microdata: 20 products, same either way
• /demo/reviews — Load more button: 12 on load, 48 after three clicks
• /demo/stock — ARIA grid, no <table> element: 30 rows, 7 columns
• /demo/returns — dirty data: 24 rows, 13 empty cells, 2 duplicates
• /demo/rates — two tables on one page: 8x5 or 14x6
• /demo/bulk — a long crawl: 2,000 rows, 11 columns, 40 pages
• /demo/live — changes every minute: 20-24 rows, the only page the Changes tab can be shown on
• Behind /demo/catalogue: a 10-level drill-down chain, product to standard
1.20 — what changed
• Compare two runs. A Changes tab beside Data and Crawl shows what moved, what is gone and what is new, as a table with the old value struck through. Pro.
• Run recovery is now free. A crawl that dies with its tab is offered back the next time you open the popup there. Nothing is downloaded for it.
• The CSV auto-save is gone. It stopped on a file chooser every few thousand rows for anyone with "Ask where to save each file" switched on, which defeated the point of a safety net.
• Schedules tell the truth. A pill shows which setup is in force, and a lapsed licence stands down instead of reading as live until it fired.
• Spreadsheet safety. A scraped "=" is no longer a live formula when the CSV is opened.
• Manual picking fixed. Clicking a row was selecting that row's columns instead of the row.
• The preview says what it draws: 100 rows, not the 500 it claimed. Exports are always complete
Magic Scraper is live on the Chrome Web Store.
It finds the table or list on the page you're looking at and exports it to CSV, XLSX or JSON — follows pagination, and can open the page behind every row to pull the fields that only exist there. Everything runs in the browser: no server, no account.
The part you might actually use, whatever you build with:
A practice site, open to anyone → https://magicscraper.app/demo
A fictional shop built to be scraped. Card grid, plain table, infinite scroll, a value that sits outside the table, and a three-level link chain behind the catalogue. Nothing is rate-limited. Point any scraper at it — mine, Scrapy, Playwright, whatever you're testing. I built it to break my own detection and it's been more useful than most of the extension.
60-second demo → https://youtu.be/FAcp6XF582E
Building a dev tool or hiring developers? Get seen here. Become our Sponsor