Navin

Scraping module - Overview

The Scraping module (sidebar → Scraping, right after Code, route #/scraping) turns open-web URLs into clean, structured datasets. The agent crawls or fetches in parallel, strips chrome, enriches metadata, and exports to CSV, JSON, JSONL, XML, Excel, Markdown or an HTML report - with a source URL on every row.

How it works

  1. Open Scraping in the sidebar (after Code).
  2. Click a card in one of the three groups - Collect, Clean & enrich, Export (see Actions).
  3. The chat opens with /scrape and the card prompt already in the composer (height follows the text). Add seed URLs / constraints in chat, then send.
  4. The agent uses the scrape tool (Rust-accelerated when navin-core is built), writes files under scrape/ in the workspace, and closes with counts + export paths.

Direct usage in any chat:

/scrape crawl https://example.com/docs depth 2, export xlsx + html report
/scrape turn this URL list into a RAG-ready markdown corpus

The /scrape command

Command/scrape [url|site|brief]
LifecycleAgent workflow (runs a full agent turn)
Skills preloadedscrape-operator, web-extractor, data-quality-agent, playwright-browser, deep-web-research, report-generator, spreadsheet-analyst
OutputClean datasets and reports saved in the workspace (scrape/…)

Architecture (Rust + Python)

LayerRole
WebUI studioCards that fill the /scrape chat - easy one-click jobs
Python tool scrapeAgent API: fetch, crawl, extract, clean, export, pipeline
navin-core (Rust)Parallel fetch, HTML extract/clean, CSV/JSON/XML/XLSX/report export
Python fallbackSame API without make native (slower)
browser toolJS-gated pages only (Playwright / Chromium)

Build the native accelerator with make native. Without it, scraping still works via the Python path.

What the agent can collect

JobApproach
Single / few pagesscrape action=fetch
Same-domain sitescrape action=crawl or pipeline with max_depth / max_pages
URL list / sitemap seedsParallel fetch, then export
JS-rendered shellsEscalate to browser (action=content or network + response_body)
RAG corpusOne Markdown file per page + manifest.json

Export formats

FormatTypical use
csv / xlsxSpreadsheets, CRM / BI import
json / jsonlPipelines, APIs, RAG loaders
xmlLegacy / enterprise ingest
mdHuman-readable corpus
reportHTML overview (ok / errors / links)

Data rules

  • Source every row: keep the page URL (and status) on each record.
  • Do not invent content: empty or blocked pages stay empty/error; escalate to browser when needed.
  • No bypass: captcha / Cloudflare / paywall / login → pause and ask you to solve or sign in via the browser session, then resume.
  • Write files, not chat dumps: corpora go under scrape/ in the workspace.
  • Respect compliance: ask when robots/ToS matter.
  • SSRF-safe: URLs are validated before fetch (same network guards as web_fetch).

Tips

  • Dry-run 1-3 URLs with fetch before a large crawl.
  • Prefer pipeline when you already know the export format.
  • Chain Collect → Clean → Export in one chat for a polished deliverable.
  • Combine with /studio if you need a deck or Word summary of the scrape.

See also the full scrape tool reference.

Source: content/docs/navin_scraping/en/README.md