Point at the page.Keep the scraper.
A Chrome extension that turns clicks on a page into a standalone Playwright script. Selector inference and code generation both happen in your browser, and no page data leaves it. You keep a Python file, not a subscription that runs your scrapes.
Click a field in the page below. Real markup from the picker's own test corpus.
No fields picked yet.
Nothing to preview.
The export is a file, not a service.
Export Python writes one self-contained scrape.py. It imports Playwright and nothing of ours. Run it with python3 and it writes scrape_output.csv and scrape_output.json beside itself.
The picks are baked in as plain constants at the top, so changing the start URL, the page cap or a selector is an edit, not a re-pick. Every non-obvious branch in it explains itself, including the two failures you will actually meet: a cookie wall and a bot check.
If Scrapewright disappears tomorrow, the script keeps running.
"""Scrape quotes.toscrape.com — generated by Scrapewright on 2026-09-05.
Setup (one time):
pip install playwright
playwright install chromium
Run:
python scrape_quotes_toscrape_com.py
Output: scrape_output.csv and scrape_output.json in the working directory.
This file is yours — edit it freely. The constants below are the usual knobs.
"""
import csv
import json
import sys
import time
from playwright.sync_api import sync_playwright
START_URL = "https://quotes.toscrape.com/"
HEADLESS = True
OUTPUT_BASE = "scrape_output"
DELAY_SECONDS = 1.0 # pause between page loads; raise to be gentler
ITEM_SELECTOR = "div.quote"
FIELDS = ["quote", "author", "tags"]
NEXT_SELECTOR = "li.next a"
MAX_PAGES = 5 # set in the panel; change to None to scrape every page
def extract_item(item):
"""Pull one row's fields from a single item element."""
return {
"quote": text(item, "span.text"),
"author": text(item, "small.author"),
"tags": text(item, "div.tags"),
}
def text(el, selector):
node = el.query_selector(selector)
return node.inner_text().strip() if node else ""
98 more lines: rows_on, open_start_page, scrape, main, write_output.
Four ways to walk a site.
Pick the mode in the panel before you export. The preview and Copy CSV always show the page in front of you; the generated script is what does the walking.
Single page
Scrape the page you are on and stop.
Pagination
Pick the next link. The script clicks through until the link runs out.
Max pages is yours to set.Infinite scroll
Scroll and re-read until the feed stops growing.
Stops at 200 scrolls.Load more button
Pick the button. The script clicks it until it goes away.
Stops at 200 clicks.Drill-down
Mark a link column to follow, then pick fields on one detail page. Those columns join every row. A detail page that fails costs you that page's fields and nothing else — the row keeps what the listing gave it.
No telemetry. No page data egress.
Selector inference, the live preview and the code generation all run inside the extension. Nothing you look at, pick or preview is sent anywhere, because there is nowhere for it to go. The only request Scrapewright ever makes is the licence-key check.
What it does not do.
Stated plainly so you do not have to find out after paying:
- No scheduled runs.
- No cloud scraping — your machine runs the script.
- No recipe sharing between people.
- No team accounts.
Buy it once.
One purchase, one licence key, no renewal. Picking and previewing stay free whether you buy or not.
Free
No key, no email
Point, click, pick fields, set the flow mode and watch the live preview. Unlimited, on any site, forever.
Includes pick and preview.
Free key
Email address, key by return
Everything above, plus getting the previewed rows out of the panel and into a spreadsheet.
Adds Copy CSV.
Pro
Launch price, one-time
Everything above, plus the generated Playwright script — the thing you keep, edit and run yourself.
Adds Export Python.
Scrapewright is not on the Chrome Web Store yet, so there is nothing to buy today. These are the prices it will launch at, published early so nobody is surprised by them later.