Design: Web Crawler
Design focuses on the crawling system including URL management, fetching, parsing, and storage. Indexing and search functionalities are out of scope.
Functional Requirements
Non-Functional Requirements
Jump into concepts and practice - no test required
+-------------------+ +-------------------+ +-------------------+
| Seed URLs | | URL Frontier | | Robots.txt Manager |
+---------+---------+ +---------+---------+ +---------+---------+
| | |
v v v
+-------------------+ +-------------------+ +-------------------+
| URL Deduplication |<----->| Scheduler & |<----->| Politeness & |
| Store | | Prioritizer | | Rate Limiter |
+---------+---------+ +---------+---------+ +---------+---------+
| | |
v v v
+-------------------+ +-------------------+ +-------------------+
| Fetcher (HTTP) |<----->| Parser (HTML & |<----->| Data Storage |
+-------------------+ | Link Extractor) | | (Pages & Metadata)|
+-------------------+ +-------------------+