Auto-Heal
Auto-Heal
Заголовок раздела «Auto-Heal»Auto-Heal — это система автоматического переключения HydraSkill. Когда IP-адрес блокируется, банится или ограничивается по частоте запросов, HydraSkill прозрачно переключается на новый IP — ваш агент никогда не обрабатывает ошибки прокси.
Как работает обнаружение
Заголовок раздела «Как работает обнаружение»HydraSkill отслеживает в ответах признаки блокировки:
| Признак | Обнаружение |
|---|---|
| HTTP 403 Forbidden | Прямая блокировка |
| HTTP 429 Too Many Requests | Ограничение частоты запросов |
| Страницы CAPTCHA | Анализ содержимого |
| Сброс соединения | Блокировка на сетевом уровне |
| Пустой ответ | Скрытая блокировка |
| Перенаправление на страницу блокировки | Сопоставление URL по шаблону |
Процесс восстановления
Заголовок раздела «Процесс восстановления»Agent Request → Proxy → Target Site ↓ (blocked!) HydraSkill detects ↓ New IP assigned ↓ Request retried ↓Agent receives ← Success responseКод вашего агента остаётся простым:
# Не нужен try/except для ошибок проксиresponse = requests.get(url, proxies=proxy.to_dict())# HydraSkill уже выполнил повтор, если первый IP был заблокированКонфигурация
Заголовок раздела «Конфигурация»proxy = client.get_proxy( target="amazon.com", auto_heal=True, # включено по умолчанию max_retries=3, # до 3 повторных попыток retry_delay_ms=500, # ожидание между попытками rotate_on_block=True, # получать новый IP при блокировке)Бюджет повторов
Заголовок раздела «Бюджет повторов»У каждого запроса есть бюджет повторов (по умолчанию: 3 попытки). Если все повторы не удаются, HydraSkill выбрасывает ProxyExhaustedError, чтобы ваш агент мог обработать этот крайний случай:
from hydraskill.exceptions import ProxyExhaustedError
try: response = requests.get(url, proxies=proxy.to_dict())except ProxyExhaustedError: # Все попытки повтора не удались — цель может полностью блокировать log.warning(f"Could not reach {url} after 3 proxy rotations")Метрики
Заголовок раздела «Метрики»Отслеживайте активность Auto-Heal на вашей панели управления:
- Heal Rate — % запросов, потребовавших смены IP
- Avg Recovery Time — миллисекунды на переключение IP
- Block Sources — какие цели вызывают больше всего блокировок
Отключение Auto-Heal
Заголовок раздела «Отключение Auto-Heal»Для отладки или когда вам нужны необработанные ответы (включая блокировки):
proxy = client.get_proxy( target="example.com", auto_heal=False # получать необработанные ответы, включая 403)