Jump to a problem, path or page
Jump to a problem, path or page
01 · Develop the design
Use a durable deduplicated URL frontier with expiring claims, shared per-host scheduling and a bounded fetch/parse pipeline. Keep crawl scope and resource policies explicit for every request.
Stage 1
Specify URL identity
Normalize scheme, host, port and fragments with a URL parser. Do not blindly reorder or discard query parameters: their meaning is site-dependent.
Stage 2
Schedule by host
A frontier should track per-host eligibility time and concurrency. Resolve scope and robots policy before a worker can fetch.
Stage 3
Budget every boundary
Limit redirects, response bytes, decompressed bytes, parse time and extracted links. Revalidate scope and destination restrictions after redirects.
02 · Work through the method
03 · Justify the choices
What stops repeated discovery from expanding forever?
A canonical URL identity plus crawl depth/page budgets
Deduplication avoids cycles; independent budgets bound effectively infinite parameterized URL spaces.
How do several workers respect a host limit?
Acquire a shared host concurrency/rate permit before fetching
Politeness must be coordinated across workers, including retries and redirected targets.
What happens after a worker dies with a claimed URL?
Its lease expires and work can be retried idempotently
A claim is not completion. Leases and durable state allow recovery without losing frontier work.
04 · Plan the evidence