v0.1.31

Documentation

v0.1.31

Scrape

One URL in; clean Markdown, extracted JSON or a screenshot out. This is every control on the Scrape screen and what each one does.

On this page

Command bar

Paste a URL — a bare host like example.com is accepted and upgraded to https:// — and press Enter or Scrape. While the run is live the button becomes Cancel.

The Scrape · Crawl · Watch switch left of the field carries the URL to the other two screens. Copy as… prints the run as CLI, MCP or Go. The cost hint beside the buttons prices any LLM calls before you spend anything, and says when the selector cache makes them free.

Render

Mode What it does
Auto (default) Static fetch first; escalates to a real browser only when the page needs JavaScript
Browser Always render in a browser
Static Never launch a browser — you want the raw server response

The browser is an installed Chrome, Chromium or Edge; with none, Magpie offers a one-time pinned Chromium download (~150 MB).

Extractor chips

One extractor per run: off, auto (dispatch by URL pattern), schema, or a vertical. The verticals are zero-LLM — GitHub repos, Hacker News, YouTube, arXiv, PyPI, npm, crates.io, Docker Hub, Hugging Face, Stack Overflow, Substack, Dev.to, Reddit, RSS, Trustpilot, Upwork jobs, Amazon, eBay, Etsy, Shopify, WooCommerce and generic e-commerce products, plus article, event, job-posting and local-business pages. Twenty-seven in all; hover a chip for its patterns.

schema opens the panel: describe what you want (“book title, price, stock availability and UPC”), press Draft schema, and an LLM drafts it fitted to the page you scraped — the badge names the provider, tokens and cost. Edit the JSON or YAML, then Save as a name; saved schemas are plain files in the schemas folder, and appear in the Crawl screen’s picker. The full authoring guide is on Schemas.

Advanced

The drawer carries the full option surface. Everything empties to a sensible default; Settings → Network can prefill proxy, fingerprint and language.

Option Default What it does
Include (CSS) empty One selector per line kept in the cleaned output
Exclude (CSS) empty One selector per line dropped — wins over include
Bypass selector cache off Skips the learned selectors for this run
Capture XHR empty Comma-separated regexps; records matching background responses (Browser render only)
Actions empty One browser action per line: click, type, scroll, wait, wait-for, eval-js
Language Settings default Accept-Language override
TLS fingerprint Settings default Browser TLS handshake: chrome, firefox, safari, edge, ios, chrome_android
Header profile default Header bundle: default, chrome, firefox, safari, edge, ios, chrome_android
Cookies empty Sent with the request, a=b; c=d
Viewport empty Screenshot size, WxH
CDP endpoint empty Drive your already-running browser, ws://127.0.0.1:9222
Proxy Settings default Per-run egress, http://user:pass@host:port or a pool line; invalid values fail before any request
Provider override Settings default LLM provider for this run
Model override empty LLM model for this run
API key (this run) empty Applies to this run only, never stored
Max cost USD 0 = off Hard ceiling on this run’s LLM spend

The result workstation

Tabs: Markdown Render, one per picked format, Extracted JSON when a record exists, XHR (URL, status, MIME, body per captured call), Brand, and Viewport. On a format tab, Re-extract reruns the schema over the tab’s content without refetching; with a vertical picked it is disabled — verticals fetch the URL themselves.

Tools: Summarize (1–20 sentences, no refetch), Brand (palette, fonts, logo, favicon — zero LLM), Wrap, Copy and Save as file (the visible tab, under its own name), Discard result.

Error paths and their exact wording are covered in First scrape. For pages behind a login, capture a session first — see Sessions.

v0.1.31 · updated