计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
crawling-a-site【效率与协作】Use when the user wants to follow links across a domain and capture every reachable page as Markdown. Covers `crawlberg crawl` with depth, page caps, concurrency, rate limiting, domain scoping, robots, and output selection.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
crawlberg crawl with depth, page
caps, concurrency, rate limiting, domain scoping, robots, and output
selection.Reach for crawlberg crawl when one URL is not enough — the user wants
the docs site, the blog, the marketing pages, or the whole domain.
crawlberg crawl https://example.com \
--depth 3 \
--max-pages 200 \
--concurrent 8 \
--rate-limit 250 \
--stay-on-domain \
--respect-robots-txt \
--format markdown
Defaults you should usually override:
--depth 2 is shallow — set it explicitly.--max-pages is unbounded by default; cap it for any unknown site.--concurrent 10 is aggressive for small hosts; drop to 4-8 for
third-party sites.| Flag | Default | Purpose |
|---|---|---|
--depth, -d | 2 | Maximum hop count from the seed URL. |
--max-pages, -n | — | Hard cap on pages fetched. Set this on any unknown site. |
--concurrent, -c | 10 | Parallel in-flight requests. |
--rate-limit | 200 | Milliseconds between requests to the same origin. |
--stay-on-domain | off | Skip links that leave the seed domain. |
--respect-robots-txt | off | Honour robots.txt. Pass it for any third-party host. |
--proxy | — | HTTP, HTTPS, or SOCKS5 proxy URL. |
--user-agent | — | Override the request UA. Be honest. |
--timeout | 30000 | Per-request timeout in ms. |
--browser-mode | auto | auto, always, never — see the headless-fallback skill. |
--browser-endpoint | — | External CDP ws:// URL. |
--format | json | json or markdown. |
--config | — | Inline JSON or @file.json for the full CrawlConfig. |
Multiple seed URLs are accepted positionally — the engine fans out with
batch_crawl and aggregates results.
crawlberg crawl https://docs.example.com \
--depth 5 --max-pages 1000 --concurrent 16 --rate-limit 100 \
--stay-on-domain --format markdown > docs.md
Higher concurrency and lower rate limits are fine on infrastructure you control.
crawlberg crawl https://blog.unknown.example \
--depth 2 --max-pages 50 --concurrent 4 --rate-limit 500 \
--stay-on-domain --respect-robots-txt --format markdown
Stay shallow, cap pages, throttle hard, obey robots.
crawlberg crawl \
https://example.com/blog \
https://example.com/docs \
https://example.com/pricing \
--depth 2 --max-pages 100 --stay-on-domain --format json
JSON output for batch is an array of { seed_url, result } entries — each
result is a full crawl payload or { error: ... }.
---
URL: https://example.com/page-one
---
# Page One
… markdown content …
---
URL: https://example.com/page-two
---
…
Top-level CrawlResult with pages: [...]. Each page carries the rendered
Markdown plus metadata, links, images, JSON-LD, and HTTP response info. Read
result.pages[i].markdown.content for the Markdown string.
--respect-robots-txt on every third-party crawl.--max-pages — a runaway BFS can issue tens of thousands of requests.--rate-limit for hosts that show signs of stress (5xx, slowdowns).--user-agent crawlberg (contact@example.com).--browser-mode auto, but never mode
will silently produce an empty crawl. Re-run with --browser-mode always
or check the headless-fallback skill.--stay-on-domain. Combine with
allow_subdomains: true in --config JSON to include subdomains.--concurrent for unrelated origins.--max-pages aggressively if downstream cannot keep up.map insteadIf the user only needs the list of URLs (sitemap analysis, link planning,
seeding another tool), use crawlberg map <url> — it skips rendering and
returns a flat MapResult with hundreds of URLs in seconds.