diff --git a/parsers/parser_schedule.py b/parsers/parser_schedule.py index b4de10e..0606ddb 100644 --- a/parsers/parser_schedule.py +++ b/parsers/parser_schedule.py @@ -57,13 +57,33 @@ def fetch_html(url: str) -> str: } try: - r = requests.get(url, headers=headers, timeout=20) - r.raise_for_status() - return r.text + response = requests.get(url, headers=headers, timeout=20) + response.raise_for_status() + return response.text + + except requests.exceptions.Timeout: + return "Ошибка: сайт слишком долго отвечает" + + except requests.exceptions.ConnectionError: + return "Ошибка: не удалось подключиться к сайту" + + except requests.exceptions.HTTPError as e: + return f"Ошибка HTTP: {e.response.status_code}" + + except requests.exceptions.TooManyRedirects: + return "Ошибка: слишком много редиректов" + + except requests.exceptions.InvalidURL: + return "Ошибка: неверный URL" + + except requests.exceptions.MissingSchema: + return "Ошибка: отсутствует схема URL (https://)" + + except requests.exceptions.SSLError: + return "Ошибка SSL сертификата" except requests.exceptions.RequestException as e: - return f"Сайт недоступен: {e}" - + return f"Неизвестная ошибка запроса: {e}" def normalize_status(score1: str | None, score2: str | None, dt: datetime) -> str: now = datetime.now(TZ)