from __future__ import annotations from dataclasses import dataclass, field import requests @dataclass class BaseCollector: headers: dict[str, str] = field(default_factory=lambda: {"User-Agent": "Mozilla/5.0"}) session: requests.Session = field(default_factory=requests.Session) def get(self, url: str, **kwargs): response = self.session.get(url, headers=self.headers, timeout=15, **kwargs) response.raise_for_status() return response