Scrapewright

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.

quotes.toscrape.com

Click a field in the page below. Real markup from the picker's own test corpus.

Scrapewright
Pick

No fields picked yet.

    Flow: Pagination Max pages: 5
    Preview

    Nothing to preview.

    Export

    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.

    $ python3 scrape_quotes_toscrape_com.py Scraped 50 rows -> scrape_output.csv and scrape_output.json
    scrape_quotes_toscrape_com.py 140 lines
    """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

    £0

    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

    £0

    Email address, key by return

    Everything above, plus getting the previewed rows out of the panel and into a spreadsheet.

    Adds Copy CSV.

    Pro

    £29 £49

    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.