Обработать Cloudflare Challenge Pages#

Пресет распознаёт страницу проверки по заголовку cf-mitigated: challenge и типу HTML. Одного кода состояния недостаточно.

Создайте описание защиты для нужного узла:

    # examples/docs/integration_cloudflare.py
    challenge = cloudflare.challenge_pages(scope=host("api.mail.example"))
Файл целиком
"""Construct a Cloudflare Challenge Pages protection preset."""

from __future__ import annotations

from eazy_sdk.protection import host
from eazy_sdk_presets import cloudflare


def main() -> None:
    # docs:integration-cloudflare:start
    # examples/docs/integration_cloudflare.py
    challenge = cloudflare.challenge_pages(scope=host("api.mail.example"))
    # docs:integration-cloudflare:end
    print(f"protection: {challenge.id}")


if __name__ == "__main__":
    main()
protection: cloudflare.challenge-pages

Перед использованием привяжите решатель, который возвращает CloudflareClearance. Исполнитель проверит cookies, применит их одной закрытой группой и безопасно повторит запрос. Повторная подтверждённая проверка отменяет прежнее разрешение перед новым решением.

Пресет сам не запускает браузер. Если решателю и HTTP-клиенту нужен общий сетевой путь, создайте их из одной фиксированной сессии. При смене прокси или профиля имитации создайте новый клиент.

Дальше#