TL;DR
- Production scraping starts with permission, a data contract, and a bounded crawl—not maximum concurrency.
- Treat transport success, page retrieval, extraction, and semantic acceptance as separate states.
- Retries need budgets, jitter, terminal errors, and idempotency; observability should measure cost per accepted record.
- Use static retrieval first and escalate to browser rendering only when the required content is absent.
Production web scraping is a reliability and data-quality system. The parser is only one component.
Ten Web Scraping Best Practices
1. Define authorization and scope
Document allowed sources, paths, fields, volume, retention, and stop conditions before configuring Nstdata Crawl or another collector. The Robots Exclusion Protocol is one input, not a complete legal decision.
2. Write the output contract first
Specify required fields, types, identity keys, timestamps, and rejection reasons before choosing selectors.
3. Canonicalize and deduplicate URLs
Normalize hosts, fragments, query parameters, and known tracking keys before scheduling work.
4. Prefer static retrieval
Do not pay the browser tax unless JavaScript is required for the data contract.
5. Bound every crawl
Set page, depth, domain, include, exclude, and time limits. Unbounded discovery turns calendars and faceted search into infinite work.




