Skip to main content

ScrapeDesk

A friendly desktop web scraper. Paste a link, choose what you want (images, tables, links, text, emails or custom fields) and export it to Excel, CSV, JSON, SQLite and more. You don't need to write any code.

pip install scrapedesk
scrapedesk

Works on Windows, macOS and Linux with Python 3.9+.


Highlights

Easy to use Sidebar navigation, big toggle cards, live result counters, tooltips, notifications, light and dark mode, and keyboard shortcuts
Images Thumbnail gallery with click-to-select and a full-size viewer. Finds img, srcset, lazy-loaded (data-src and more), <picture>, CSS backgrounds, og:image, icons and linked image files
Smart downloads Filter by type, width/height and file size. Removes duplicates, downloads in parallel, renames, and converts to PNG/JPG/WEBP
Tables Every <table>, including merged cells (colspan/rowspan) and multi-row headers. Can also turn product grids and lists into tables. Sort, filter, merge, and copy to Excel
Exports Excel (one sheet per table), CSV, TSV, JSON, HTML, SQLite and Markdown, or everything in one workbook
Custom fields Pick exact values (title, price, rating, link…) with CSS or XPath and get one row per item
More pages Follows "Next page" pagination and crawls links with depth, page limits and include/exclude rules
Tough sites Browser identities, headers, cookies, proxy, retries, request delay, robots.txt, and optional JavaScript rendering

Install

pip install scrapedesk

Start the app:

scrapedesk               # or:  python -m scrapedesk
scrapedesk https://example.com   # open with a URL already filled in

Linux: tkinter is sometimes packaged separately: sudo apt install python3-tk.

JavaScript-heavy websites (optional)

If a site builds its content with JavaScript (React or Vue apps, infinite scroll), install the browser extra and turn on Settings → JavaScript websites → Playwright:

pip install "scrapedesk[js]"
python -m playwright install chromium

If you skip the last step, ScrapeDesk falls back to an installed Google Chrome or Microsoft Edge.

How to use

  1. Home: paste a URL (or several), then click the cards for what you want to collect and press Start.
  2. Watch the counters update. When the job finishes, a notification takes you to the results.
  3. Images: click thumbnails to select them, double-click to see full size, then Download selected.
  4. Tables: pick a table, then Export it (Excel, CSV…) or Copy it straight into Excel.
  5. Custom Fields: press Load example to see how product names and prices are extracted.
  6. Press Ctrl+E to export everything in one Excel workbook.

Keyboard shortcuts:

Keys Action
Enter / Ctrl+Enter Start
Esc Stop
Ctrl+1…9 Switch section
Ctrl+E Export all
Ctrl+D Dark mode
F1 Help

Command line

Everything also works without the window:

# all images wider than 300 px
scrapedesk-cli https://example.com --images --download --min-width 300 --types jpg,png

# every table to Excel
scrapedesk-cli https://example.com/stats --tables -o stats.xlsx

# one row per product across 50 pages
scrapedesk-cli https://books.toscrape.com --paginate --max-pages 50 \
    --row article.product_pod --css "title=h3 a@title" --css "price=.price_color" -o books.csv

# crawl a site and export everything
scrapedesk-cli https://example.com --crawl --depth 2 --max-pages 100 --report everything.xlsx

Run scrapedesk-cli --help for all options.

Use it from Python

from scrapedesk import ScrapeSettings, WebScraper
from scrapedesk.exporters import export_dataframes, tables_to_frames

settings = ScrapeSettings(extract_images=True, extract_tables=True, min_width=200)
scraper = WebScraper(settings)
pages = scraper.run(["https://example.com"])

tables = [t for p in pages for t in p.tables]
export_dataframes(tables_to_frames(tables), "tables.xlsx")
scraper.download_images([img for p in pages for img in p.images])

Responsible use

Only scrape content you are allowed to access. Respect each website's terms of service, robots.txt (there is a setting for it) and rate limits (use the delay setting), and follow privacy laws such as GDPR when you collect personal data. ScrapeDesk does not bypass logins, CAPTCHAs or anti-bot protection.

License

MIT

Metadata

Release files for scrapedesk 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for scrapedesk 1.0.0
File Size Uploaded Provenance Actions
scrapedesk-1.0.0.tar.gz 85.0 kB Without provenance Details for scrapedesk-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for scrapedesk 1.0.0
File Interpreter ABI Platform Actions
scrapedesk-1.0.0-py3-none-any.whl Python 3 none any Details for scrapedesk-1.0.0-py3-none-any.whl

Total release size: 174.8 kB

Release files / scrapedesk-1.0.0.tar.gz

Download URL scrapedesk-1.0.0.tar.gz
Size 85.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f00f7913b43cb7deee76dc055209e481ae04a976c54a2d8318543b3bba16ab06
BLAKE2b-256 checksum
How to use checksums
f3c664754954f996058b2c7917994d63ffaaf919f0b20eb1ca0ca78fa8557fe8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.0rc2

Release files / scrapedesk-1.0.0-py3-none-any.whl

Download URL scrapedesk-1.0.0-py3-none-any.whl
Size 89.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
716e84db5eba9796d21f15a29cb9f7e777f015e8e32955fab8059e102b1d83cf
BLAKE2b-256 checksum
How to use checksums
0765d1e2061264b457fc7e9673abcf3a626d768da38e3f1dbd702c7dcd7e64af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.0rc2

Security for scrapedesk 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page