Rate limiting. Don't hammer the server (Section 24.5). 2. **A descriptive `User-Agent` header** -- The default `python-requests/2.x` is often blocked. Transparency is both polite and practical. 3. **Error handling** -- Networks fail, servers go down. `try/except` and `timeout=10` ensure graceful fai