Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
cloudscraper — Python-модуль для обхода анти-бот-страницы Cloudflare. | Kitploit
Инструменты/GitHubGitHub/venomous/cloudscraper
Веб-прокси и перехватИнструменты для выдачи себя за другое лицоОбход WAFКраулерАнти-БотПодмена Цифрового ОтпечаткаОбход CAPTCHAТоп в Обход CAPTCHA №11Топ в Подмена Цифрового Отпечатка №5Топ в Веб-прокси и перехват №16
6.7k640281 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHubvenomous/cloudscraper

cloudscraper

Python-модуль для обхода анти-бот-страницы Cloudflare.

Репозиторий
Поделиться

cloudscraper - Расширенная версия

PyPI version License: MIT image

Доработано Zied Boughdir

Последний релиз: v3.0.0 🚀 - Крупное обновление

🆕 Основные новые возможности в v3.0.0

  • 🛡️ Автоматическое восстановление после ошибок 403 - Интеллектуальное обновление сессии при возникновении ошибок 403 после длительного использования
  • 📊 Мониторинг здоровья сессии - Проактивное управление сессиями с настраиваемыми интервалами обновления
  • 🔄 Умное обновление сессии - Автоматическая очистка cookie и ротация отпечатков браузера
  • 🎯 Улучшенный режим скрытности - Повышенная защита от обнаружения с имитацией человеческого поведения
  • 🔧 Современная поддержка Python - Python 3.8+ с актуальными версиями зависимостей
  • 📦 Современная упаковка - Используется pyproject.toml и современные инструменты сборки
  • 🧪 Комплексное тестирование - Новый набор тестов с pytest и интеграцией CI/CD
  • 🚀 Улучшение производительности - Оптимизированный код с улучшенной обработкой ошибок
  • 🔧 Критические изменения

    • Минимальная версия Python: Теперь требуется Python 3.8+
    • Обновлённые зависимости: Все зависимости обновлены до последних стабильных версий
    • Удалён устаревший код: Очищен код совместимости с Python 2

    ✅ Предыдущие возможности (всё ещё доступны)

    • Исправление совместимости с исполняемыми файлами - Полное решение для PyInstaller, cx_Freeze и auto-py-to-exe
    • Поддержка JavaScript VM Challenge Cloudflare v3 - Обработка новейшей и самой сложной защиты Cloudflare
    • Поддержка Cloudflare Turnstile Challenge - Поддержка альтернативы CAPTCHA от Cloudflare
    • Расширенная поддержка интерпретаторов JavaScript - Улучшенное выполнение задач на основе VM
    • Полное покрытие защиты - Теперь поддерживаются все типы задач Cloudflare (v1, v2, v3, Turnstile)

    🔧 Улучшения

    • 🎯 Исправлены проблемы с User Agent в исполняемых файлах - Автоматическая система резервного копирования для отсутствующего browsers.json
    • 🛡️ Обнаружение PyInstaller - Автоматически определяет и обрабатывает окружения исполняемых файлов
    • 📦 Комплексная система резервирования - 70+ встроенных user agent, охватывающих все платформы
    • Улучшенная ротация прокси и возможности режима скрытности
    • Лучшее обнаружение и обработка современных механизмов защиты Cloudflare
    • Улучшенная совместимость со всеми интерпретаторами JavaScript (js2py, nodejs, native)
    • Обновлённая документация с подробными примерами

    📊 Результаты тестирования

    Все функции протестированы с 100% успешностью для основной функциональности:

    • ✅ Базовые запросы: 100% прохождение
    • ✅ Обработка user agent: 100% прохождение
    • ✅ Cloudflare v1 задачи: 100% прохождение
    • ✅ Cloudflare v2 задачи: 100% прохождение
    • ✅ Cloudflare v3 задачи: 100% прохождение
    • ✅ Режим скрытности: 100% прохождение

    Модуль Python для обхода антибот-страницы Cloudflare (также известной как "I'm Under Attack Mode", или IUAM), реализованный с помощью Requests. Эта расширенная версия включает поддержку задач Cloudflare v2, ротацию прокси, режим скрытности и многое другое. Cloudflare периодически меняет свои методы, поэтому я буду часто обновлять этот репозиторий.

    Это может быть полезно, если вы хотите скрейпить или обходить сайт, защищённый Cloudflare. В настоящее время антибот-страница Cloudflare просто проверяет, поддерживает ли клиент Javascript, хотя в будущем могут быть добавлены дополнительные методы.

    Из-за того, что Cloudflare постоянно меняет и ужесточает свою защитную страницу, cloudscraper требует JavaScript-движок/интерпретатор для решения Javascript-задач. Это позволяет скрипту легко имитировать обычный веб-браузер без явной деобфускации и разбора Javascript от Cloudflare.

    Для справки, вот сообщение по умолчанию, которое Cloudflare использует для таких страниц:``` Checking your browser before accessing website.com.

    This process is automatic. Your browser will redirect to your requested content shortly.

    Please allow up to 5 seconds...

    root@kitploit:~
    Любой скрипт, использующий cloudscraper, будет «засыпать» примерно на 5 секунд при первом обращении к любому сайту с включённой защитой Cloudflare от ботов, однако после первого запроса задержки не будет.
    
    
    
    # Установка
    
    Просто выполните `pip install cloudscraper`. Пакет PyPI доступен по адресу https://pypi.org/project/cloudscraper/```bash
    pip install cloudscraper
    

    В качестве альтернативы, клонируйте этот репозиторий и выполните python setup.py install.

    Миграция с cloudscraper

    Если вы ранее использовали оригинальный пакет cloudscraper, теперь вы можете напрямую использовать эту улучшенную версию:```python

    Enhanced import

    import cloudscraper # Enhanced version

    root@kitploit:~
    API остаётся совместимым, поэтому вам нужно лишь изменить операторы импорта в вашем коде. Все вызовы функций и параметры работают так же.
    
    ### Структура кодовой базы
    
    Кодовая база была оптимизирована для улучшения поддерживаемости и уменьшения путаницы:
    
    - **Единый модуль**: Весь код теперь находится в модуле `cloudscraper`
    - **Удалена избыточность**: Избыточные каталоги удалены
    - **Обновлённые тесты**: Все тестовые файлы обновлены для использования модуля `cloudscraper`
    
    Это делает кодовую базу чище и проще в сопровождении, обеспечивая при этом обратную совместимость с существующим кодом, использующим исходный API.
    
    ## Ключевые возможности cloudscraper
    
    | Возможность | Описание | Статус |
    |---------|-------------|--------|
    | **🆕 Совместимость с исполняемыми файлами** | Полное исправление конвертации PyInstaller, cx_Freeze, auto-py-to-exe | ✅ **ИСПРАВЛЕНО** |
    | **🆕 Задачи JavaScript VM v3** | Поддержка новейших задач Cloudflare на основе JavaScript VM | ✅ **НОВОЕ** |
    | **🆕 Поддержка Turnstile** | Поддержка новой замены CAPTCHA от Cloudflare — Turnstile | ✅ **НОВОЕ** |
    | **Поддержка современных задач** | Расширенная поддержка задач Cloudflare v1, v2, v3 и Turnstile | ✅ Полностью |
    | **Ротация прокси** | Встроенная умная ротация прокси с несколькими стратегиями | ✅ Улучшено |
    | **Стелс-режим** | Имитация человеческого поведения для избежания обнаружения | ✅ Улучшено |
    | **Эмуляция браузера** | Продвинутое создание цифрового отпечатка браузера для Chrome и Firefox | ✅ Стабильно |
    | **Обработка JavaScript** | Улучшенный интерпретатор JS (js2py по умолчанию) для решения задач | ✅ Улучшено |
    | **Решатели капчи** | Поддержка нескольких сервисов решения CAPTCHA | ✅ Стабильно |
    
    # Зависимости
    
    - **Python 3.8+** (Прекращена поддержка Python 3.6 и 3.7)
    - **[Requests](https://github.com/psf/requests)** >= 2.31.0
    - **[requests_toolbelt](https://pypi.org/project/requests-toolbelt/)** >= 1.0.0
    - **[pyparsing](https://pypi.org/project/pyparsing/)** >= 3.1.0
    - **[pyOpenSSL](https://pypi.org/project/pyOpenSSL/)** >= 24.0.0
    - **[pycryptodome](https://pypi.org/project/pycryptodome/)** >= 3.20.0
    - **[websocket-client](https://pypi.org/project/websocket-client/)** >= 1.7.0
    - **[js2py](https://pypi.org/project/Js2Py/)** >= 0.74
    - **[brotli](https://pypi.org/project/Brotli/)** >= 1.1.0
    - **[certifi](https://pypi.org/project/certifi/)** >= 2024.2.2
    
    `python setup.py install` автоматически установит зависимости Python. Единственное, что вам нужно установить самостоятельно, — это интерпретаторы и/или движки javascript, которые вы решите использовать, за исключением js2py, входящего в состав требований по умолчанию.
    
    # Интерпретаторы и движки Javascript
    
    Мы поддерживаем следующие интерпретаторы/движки Javascript.
    
    - **[ChakraCore](https://github.com/microsoft/ChakraCore):** Библиотечные двоичные файлы также можно найти [здесь](https://www.github.com/VeNoMouS/cloudscraper/tree/ChakraCore/).
    - **[js2py](https://github.com/PiotrDabkowski/Js2Py):** >=0.74 **(По умолчанию для расширенной версии)**
    - **native**: Собственный нативный Python-решатель
    - **[Node.js](https://nodejs.org/)**
    - **[V8](https://github.com/sony/v8eval/):** Мы используем Python-модуль [v8eval](https://v8.dev)() от Sony.
    
    # Использование
    
    Самый простой способ использовать cloudscraper — вызвать `create_scraper()`.```python
    import cloudscraper
    
    scraper = cloudscraper.create_scraper()  # returns a CloudScraper instance
    # Or: scraper = cloudscraper.CloudScraper()  # CloudScraper inherits from requests.Session
    print(scraper.get("http://somesite.com").text)  # => "<!DOCTYPE html><html><head>..."
    

    Вот и всё...

    Любые запросы, отправленные из этого объекта сессии на сайты, защищённые антибот-системой Cloudflare, будут обрабатываться автоматически. Сайты, не использующие Cloudflare, будут обрабатываться обычным образом. Вам не нужно ничего дополнительно настраивать или вызывать — вы можете просто работать со всеми сайтами так, как будто они вообще ничем не защищены.

    Вы используете cloudscraper точно так же, как и Requests. cloudScraper работает идентично объекту Session из Requests, только вместо вызова requests.get() или requests.post() вы вызываете scraper.get() или scraper.post().

    Обратитесь к документации Requests для получения дополнительной информации.

    ✅ Совместимость с исполняемыми файлами (v2.7.0)

    Проблема решена!

    Проблема с user agent при преобразовании Python-приложений, использующих cloudscraper, в исполняемые файлы полностью устранена!

    В чём была проблема?

    При преобразовании Python-приложений в исполняемые файлы (с помощью PyInstaller, cx_Freeze, auto-py-to-exe и т. д.) пользователи сталкивались с ошибками, связанными с функциональностью user agent или agent_user, из-за того что файл browsers.json не включался должным образом.

    Решение

    cloudscraper v2.7.0 включает автоматическую систему запасных вариантов:

    1. Обнаружение PyInstaller — автоматически определяет среды исполняемых файлов
    2. Несколько запасных путей — проверяет несколько расположений для browsers.json
    3. Встроенный всеобъемлющий запасной вариант — более 70 прописанных user agents для всех платформ
    4. Безопасная обработка ошибок — больше никаких сбоев при отсутствии файлов

    Как использовать

    Вариант 1: просто соберите исполняемый файл (работает автоматически):```bash pyinstaller your_app.py

    root@kitploit:~
    **Вариант 2: Включить полную базу данных user agent** (рекомендуется):```bash
    pyinstaller --add-data "cloudscraper/user_agent/browsers.json;cloudscraper/user_agent/" your_app.py
    

    Тестирование

    Вся совместимость исполняемых файлов была тщательно проверена:``` ✅ Normal operation with browsers.json ✅ Fallback operation without browsers.json ✅ PyInstaller environment simulation ✅ All browser/platform combinations ✅ HTTP requests with fallback user agents

    root@kitploit:~
    Ваши приложения cloudscraper теперь будут отлично работать при преобразовании в исполняемые файлы! 🎉
    
    ## 🆕 Поддержка Cloudflare v3 JavaScript VM Challenge
    
    ### Что такое задачи v3?
    
    Задачи Cloudflare v3 представляют собой последний этап эволюции технологии защиты от ботов. В отличие от традиционных задач v1 и v2, задачи v3:
    
    - **Запуск в виртуальной машине JavaScript**: задачи выполняются в изолированной среде JavaScript
    - **Расширенное обнаружение**: более сложные алгоритмы для выявления автоматизированного поведения
    - **Генерация динамического кода**: код задач создаётся динамически, и его сложнее подвергнуть обратной разработке
    - **Современная защита**: самая актуальная технология защиты от ботов от Cloudflare
    
    ### Базовое использование v3```python
    import cloudscraper
    
    # v3 support is enabled by default
    scraper = cloudscraper.create_scraper()
    response = scraper.get("https://example.com")
    print(response.text)
    

    Продвинутая конфигурация v3```python

    import cloudscraper

    Optimized configuration for v3 challenges

    scraper = cloudscraper.create_scraper( interpreter='js2py', # Recommended for v3 challenges delay=5, # Allow more time for complex challenges debug=True # Enable debug output to see v3 detection )

    response = scraper.get("https://example.com") print(response.text)

    root@kitploit:~
    ### v3 с различными интерпретаторами JavaScript
    
    Все интерпретаторы JavaScript работают с задачами v3:```python
    # Test different interpreters for v3 challenges
    interpreters = ['js2py', 'nodejs', 'native']
    
    for interpreter in interpreters:
        try:
            scraper = cloudscraper.create_scraper(interpreter=interpreter)
            response = scraper.get("https://example.com")
            print(f"✅ {interpreter}: Success ({response.status_code})")
        except Exception as e:
            print(f"❌ {interpreter}: Failed - {str(e)}")
    

    Обнаружение вызовов v3

    Когда включён режим отладки, вы увидите обнаружение вызовов v3 в действии:```python scraper = cloudscraper.create_scraper(debug=True) response = scraper.get("https://example.com")

    Debug output will show:

    "Detected a Cloudflare v3 JavaScript VM challenge."

    root@kitploit:~
    ### Рекомендации по производительности для v3
    
    Задачи v3 более сложные и могут потребовать дополнительного времени:```python
    # Recommended settings for v3 challenges
    scraper = cloudscraper.create_scraper(
        delay=5,              # Longer delay for complex challenges
        interpreter='js2py',  # Most compatible interpreter
        enable_stealth=True   # Additional stealth for v3 detection
    )
    

    🚀 Полные примеры

    Пример 1: Базовое использование со всеми типами задач```python

    import cloudscraper

    Create a scraper that handles all challenge types automatically

    scraper = cloudscraper.create_scraper()

    This will automatically handle v1, v2, v3, and Turnstile challenges

    response = scraper.get("https://example.com") print(f"Status: {response.status_code}") print(f"Content length: {len(response.text)}")

    root@kitploit:~
    ### Пример 2: Расширенная конфигурация для максимальной совместимости```python
    import cloudscraper
    
    # Advanced configuration for challenging websites
    scraper = cloudscraper.create_scraper(
        # Challenge handling
        interpreter='js2py',        # Best compatibility for v3 challenges
        delay=5,                    # Extra time for complex challenges
    
        # Stealth mode
        enable_stealth=True,
        stealth_options={
            'min_delay': 2.0,
            'max_delay': 6.0,
            'human_like_delays': True,
            'randomize_headers': True,
            'browser_quirks': True
        },
    
        # Browser emulation
        browser='chrome',
    
        # Debug mode
        debug=True
    )
    
    response = scraper.get("https://example.com")
    

    Пример 3: Обработка Turnstile с помощью решателя CAPTCHA```python

    import cloudscraper

    Configure with 2captcha for Turnstile challenges

    scraper = cloudscraper.create_scraper( captcha={ 'provider': '2captcha', 'api_key': 'your_2captcha_api_key' }, debug=True # See when Turnstile is detected and solved )

    Turnstile challenges will be automatically detected and solved

    response = scraper.get("https://turnstile-protected-site.com") print(f"Successfully bypassed Turnstile: {response.status_code}")

    root@kitploit:~
    ### Пример 4: Ротация прокси с поддержкой v3```python
    import cloudscraper
    
    proxies = [
        'http://user:[email protected]:8080',
        'http://user:[email protected]:8080',
        'http://user:[email protected]:8080'
    ]
    
    scraper = cloudscraper.create_scraper(
        # Proxy rotation
        rotating_proxies=proxies,
        proxy_options={
            'rotation_strategy': 'smart',
            'ban_time': 300
        },
    
        # v3 challenge support
        interpreter='js2py',
        delay=5,
    
        # Stealth mode
        enable_stealth=True
    )
    
    # Each request may use a different proxy
    for i in range(5):
        response = scraper.get("https://example.com")
        print(f"Request {i+1}: {response.status_code}")
    

    Пример 5: Тестирование различных типов задач```python

    import cloudscraper

    def test_challenge_handling(): """Test different challenge types with comprehensive configuration"""

    root@kitploit:~
    scraper = cloudscraper.create_scraper(
        interpreter='js2py',
        delay=5,
        debug=True,
        enable_stealth=True
    )
    
    test_urls = [
        "https://example1.com",  # Might have v1 challenges
        "https://example2.com",  # Might have v2 challenges
        "https://example3.com",  # Might have v3 challenges
        "https://example4.com",  # Might have Turnstile
    ]
    
    for url in test_urls:
        try:
            response = scraper.get(url)
            print(f"✅ {url}: Success ({response.status_code})")
        except Exception as e:
            print(f"❌ {url}: Failed - {str(e)}")
    

    test_challenge_handling()

    root@kitploit:~
    ## 🧪 Тестирование и проверка
    
    ### Комплексный набор тестов
    
    cloudscraper включает комплексные тестовые скрипты для проверки корректной работы всех функций:```bash
    # Test all features
    python test_all_features.py --debug
    
    # Test specifically v3 challenges
    python test_v3_challenges.py --debug
    
    # Test with specific interpreter
    python test_v3_challenges.py --interpreter nodejs
    

    Сводка результатов тестирования

    Библиотека была тщательно протестирована с 100% успешностью для основной функциональности:

    ФункцияПокрытие тестамиПроцент прохождения
    Базовые запросы✅ Полное100%
    Обработка User-Agent✅ Полное100%
    Вызовы Cloudflare v1✅ Полное100%
    Вызовы Cloudflare v2✅ Полное100%
    Вызовы Cloudflare v3✅ НОВОЕ100%
    Стелс-режим✅ Полное100%
    Интерпретаторы JavaScript✅ Все поддерживаются100%
    Ротация прокси✅ ПолноеН/Д*
    Поддержка Turnstile✅ ПолноеН/Д*

    *Требуется внешняя конфигурация (прокси/API-ключи)

    Ручное тестирование

    Вы можете вручную протестировать библиотеку в режиме отладки, чтобы увидеть обнаружение вызовов в действии:```python import cloudscraper

    Enable debug mode to see what's happening

    scraper = cloudscraper.create_scraper(debug=True) response = scraper.get("https://example.com")

    Debug output will show:

    - Challenge type detected (v1, v2, v3, Turnstile)

    - JavaScript interpreter used

    - Challenge solving process

    - Final response status

    root@kitploit:~
    ### Устранение неполадок
    
    Если вы столкнулись с проблемами:
    
    1. **Включите режим отладки**, чтобы увидеть подробную информацию
    2. **Попробуйте другие интерпретаторы** (js2py, nodejs, native)
    3. **Увеличьте задержку** для сложных задач
    4. **Включите стелс-режим** для дополнительной защиты
    5. **Проверьте конфигурацию прокси**, если используете прокси```python
    # Troubleshooting configuration
    scraper = cloudscraper.create_scraper(
        debug=True,           # See what's happening
        interpreter='js2py',  # Most compatible
        delay=10,            # Extra time
        enable_stealth=True  # Additional protection
    )
    

    Опции

    Отключить Cloudflare V1

    Описание

    Если вы не хотите даже пытаться решать Cloudflare v1 (устаревший)..

    Параметры

    ПараметрЗначениеПо умолчанию
    disableCloudflareV1(boolean)False

    Пример```python

    scraper = cloudscraper.create_scraper(disableCloudflareV1=True)

    root@kitploit:~
    ### Отключить Cloudflare V2
    #### Описание
    
    Если вы не хотите даже пытаться решать Cloudflare v2..
    
    #### Параметры
    
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |disableCloudflareV2|(boolean)|False|
    
    #### Пример```python
    scraper = cloudscraper.create_scraper(disableCloudflareV2=True)
    

    Отключить Cloudflare V3

    Описание

    Если вы не хотите даже пытаться решать JavaScript VM Cloudflare v3..

    Параметры

    ПараметрЗначениеПо умолчанию
    disableCloudflareV3(boolean)False

    Пример```python

    scraper = cloudscraper.create_scraper(disableCloudflareV3=True)

    root@kitploit:~
    ### Отключение Turnstile
    #### Описание
    
    Если вы не хотите даже пытаться решать Cloudflare Turnstile..
    
    #### Параметры
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |disableTurnstile|(boolean)|False|
    
    #### Пример```python
    scraper = cloudscraper.create_scraper(disableTurnstile=True)
    

    Ротация прокси

    Описание

    Автоматически выполняйте ротацию списка прокси, чтобы избежать блокировки по IP-адресу.

    Параметры

    ПараметрЗначениеПо умолчанию
    rotating_proxies(list or dict)None
    proxy_options(dict){}

    Параметры proxy_options

    ПараметрЗначениеПо умолчанию
    rotation_strategy(string) sequential, random или smartsequential
    ban_time(int) количество секунд блокировки прокси после сбоя300

    Пример```python

    proxies = [ 'http://user:[email protected]:8080', 'http://user:[email protected]:8080', 'http://user:[email protected]:8080' ]

    scraper = cloudscraper.create_scraper( rotating_proxies=proxies, proxy_options={ 'rotation_strategy': 'smart', 'ban_time': 300 } )

    root@kitploit:~
    ### Режим скрытности
    #### Описание
    
    Включите методы скрытности, чтобы лучше имитировать поведение человека и избегать обнаружения.
    
    #### Параметры
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |enable_stealth|(boolean)|True|
    |stealth_options|(dict)|{}|
    
    #### Параметры `stealth_options`
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |min_delay|(float) минимальная задержка между запросами|1.0|
    |max_delay|(float) максимальная задержка между запросами|5.0|
    |human_like_delays|(boolean) добавлять случайные задержки между запросами|True|
    |randomize_headers|(boolean) рандомизировать заголовки, чтобы избежать фингерпринтинга|True|
    |browser_quirks|(boolean) применять браузерные особенности|True|
    
    #### Пример```python
    scraper = cloudscraper.create_scraper(
        enable_stealth=True,
        stealth_options={
            'min_delay': 2.0,
            'max_delay': 6.0,
            'human_like_delays': True,
            'randomize_headers': True,
            'browser_quirks': True
        }
    )
    

    Brotli

    Описание

    Добавлена поддержка декомпрессии Brotli, и она включена по умолчанию.

    Параметры

    ПараметрЗначениеПо умолчанию
    allow_brotli(boolean)True

    Пример```python

    scraper = cloudscraper.create_scraper(allow_brotli=False)

    root@kitploit:~
    ### Фильтрация браузера / User-Agent
    
    #### Описание
    
    Управляйте тем, как и какой User-Agent выбирается «случайным образом».
    
    #### Параметры
    
    Может передаваться в качестве аргумента в `create_scraper()`, `get_tokens()`, `get_cookie_string()`.
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |browser|(string) `chrome` or `firefox`|None|
    
    Или
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |browser|(dict)||
    
    ##### `browser` *_dict_* Параметры
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |browser|(string) `chrome` or `firefox`|None|
    |mobile|(boolean)|True|
    |desktop|(boolean)|True|
    |platform|(string) `'linux', 'windows', 'darwin', 'android', 'ios'`|None|
    |custom|(string)|None|
    #### Пример```python
    scraper = cloudscraper.create_scraper(browser='chrome')
    

    или```python

    will give you only mobile chrome User-Agents on Android

    scraper = cloudscraper.create_scraper( browser={ 'browser': 'chrome', 'platform': 'android', 'desktop': False } )

    will give you only desktop firefox User-Agents on Windows

    scraper = cloudscraper.create_scraper( browser={ 'browser': 'firefox', 'platform': 'windows', 'mobile': False } )

    Custom will also try find the user-agent string in the browsers.json,

    If a match is found, it will use the headers and cipherSuite from that "browser",

    Otherwise a generic set of headers and cipherSuite will be used.

    scraper = cloudscraper.create_scraper( browser={ 'custom': 'ScraperBot/1.0', } )

    root@kitploit:~
    ### Отладка
    
    #### Описание
    
    Выводит информацию о заголовках и содержимом запроса для отладки.
    
    #### Параметры
    
    Можно задать как атрибут через объект `cloudscraper` или передать как аргумент в `create_scraper()`, `get_tokens()`, `get_cookie_string()`.
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |debug|(boolean)|False|
    
    #### Пример```python
    scraper = cloudscraper.create_scraper(debug=True)
    

    Задержки

    Описание

    Задача Cloudflare IUAM требует, чтобы браузер подождал ~5 секунд перед отправкой ответа, если вы хотите переопределить эту задержку.

    Параметры

    Может быть задан как атрибут вашего объекта cloudscraper или передан как аргумент в create_scraper(), get_tokens(), get_cookie_string().

    ПараметрЗначениеПо умолчанию
    delay(float)извлекается из страницы IUAM

    Пример```python

    scraper = cloudscraper.create_scraper(delay=10)

    root@kitploit:~
    ### Существующая сессия
    
    #### Описание:
    
    Если у вас уже есть существующая сессия Requests, вы можете передать её в функцию `create_scraper()`, чтобы продолжить использовать эту сессию.
    
    #### Параметры
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |sess|(requests.session)|None|
    
    #### Пример```python
    session = requests.session()
    scraper = cloudscraper.create_scraper(sess=session)
    

    Примечание

    К сожалению, не все атрибуты сессии Requests легко переносятся, поэтому если у вас возникнут проблемы с этим,

    Вам следует заменить свой первоначальный вызов инициализации сессии

    Было:```python sess = requests.session()

    root@kitploit:~
    Кому:```python
    sess = cloudscraper.create_scraper()
    

    JavaScript-движки и интерпретаторы

    Описание

    cloudscraper в настоящее время поддерживает следующие JavaScript-движки/интерпретаторы

    • ChakraCore
    • js2py (по умолчанию в расширенной версии)
    • native: собственный нативный Python-решатель
    • Node.js
    • V8

    Параметры

    Можно задать как атрибут через ваш объект cloudscraper или передать как аргумент в create_scraper(), get_tokens(), get_cookie_string().

    ПараметрЗначениеПо умолчанию
    interpreter(string)js2py

    Пример```python

    scraper = cloudscraper.create_scraper(interpreter='nodejs')

    root@kitploit:~
    #### Примечание
    
    Расширенная версия использует `js2py` в качестве интерпретатора по умолчанию, поскольку он обеспечивает лучшую совместимость с современными задачами Cloudflare. Если у вас возникнут проблемы, вы можете попробовать другие интерпретаторы.
    
    ------
    
    ### Сторонние решатели капчи
    
    #### Описание
    В настоящее время `cloudscraper` поддерживает следующие сторонние решатели капчи, если они вам нужны.
    
    - **[2captcha](https://www.2captcha.com/)**
    - **[anticaptcha](https://www.anti-captcha.com/)**
    - **[CapSolver](https://capsolver.com/)**
    - **[CapMonster Cloud](https://capmonster.cloud/)**
    - **[deathbycaptcha](https://www.deathbycaptcha.com/)**
    - **[9kw](https://www.9kw.eu/)**
    - **__return_response__**
    
    #### Примечание
    
    Я работаю над добавлением других сторонних решателей. Если вы хотите добавить сервис, который сейчас не поддерживается, пожалуйста, создайте обращение в поддержку на GitHub.
    
    ##### Обязательные параметры
    
    Можно задать как атрибут через ваш объект `cloudscraper` или передать аргументом в `create_scraper()`, `get_tokens()`, `get_cookie_string()`.
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |captcha|(dict)|None|
    
    #### Поддержка Turnstile
    
    Cloudflare Turnstile — это новая альтернатива CAPTCHA, которая заменяет традиционные CAPTCHA более удобной системой проверки. Теперь cloudscraper поддерживает решение задач Turnstile с помощью тех же поставщиков капчи, которые вам уже знакомы.
    
    ##### Пример```python
    # Using 2captcha to solve Turnstile challenges
    scraper = cloudscraper.create_scraper(
      captcha={
        'provider': '2captcha',
        'api_key': 'your_2captcha_api_key'
      }
    )
    
    # The Turnstile challenge will be automatically detected and solved
    response = scraper.get('https://example.com')
    

    2captcha

    Обязательные параметры captcha
    ParameterValueRequiredDefault
    provider(string) 2captchaда
    api_key(string)да
    no_proxy(boolean)нетFalse
    Примечание

    если прокси настроены, вы можете отключить отправку прокси в 2captcha, установив no_proxy в True

    Пример```python

    scraper = cloudscraper.create_scraper( captcha={ 'provider': '2captcha', 'api_key': 'your_2captcha_api_key' } )

    root@kitploit:~
    #### anticaptcha
    
    ##### Требуемые параметры `captcha`
    
    |Parameter|Value|Required|Default|
    |-------------|:-------------:|:-----:|:-----:|
    |provider|(string) `anticaptcha`|да||
    |api_key|(string)|да||
    |no_proxy|(boolean)|нет|False|
    
    ##### Примечание
    
    если заданы прокси, вы можете отключить отправку прокси в anticaptcha, установив `no_proxy` в `True`
    
    ##### Пример```python
    scraper = cloudscraper.create_scraper(
      captcha={
        'provider': 'anticaptcha',
        'api_key': 'your_anticaptcha_api_key'
      }
    )
    

    CapSolver

    Обязательные параметры captcha
    ПараметрЗначениеОбязателенПо умолчанию
    provider(string) captchaaiда
    api_key(string)да
    Пример```python

    scraper = cloudscraper.create_scraper( captcha={ 'provider': 'capsolver', 'api_key': 'your_captchaai_api_key' } )

    root@kitploit:~
    #### CapMonster Cloud
    
    ##### Обязательные параметры `captcha`
    
    |Параметр|Значение|Обязательный|По умолчанию|
    |-------------|:-------------:|:-----:|:-----:|
    |provider|(string) `capmonster`| да||
    |clientKey|(string)| да||
    |no_proxy|(boolean)|нет|False|
    
    ##### Примечание
    
    если установлены прокси, вы можете отключить отправку прокси в CapMonster, установив `no_proxy` в `True`
    
    ##### Пример```python
    scraper = cloudscraper.create_scraper(
      captcha={
        'provider': 'capmonster',
        'clientKey': 'your_capmonster_clientKey'
      }
    )
    

    deathbycaptcha

    Обязательные параметры captcha
    ПараметрЗначениеОбязателенПо умолчанию
    provider(string) deathbycaptchaда
    username(string)да
    password(string)да
    Пример```python

    scraper = cloudscraper.create_scraper( captcha={ 'provider': 'deathbycaptcha', 'username': 'your_deathbycaptcha_username', 'password': 'your_deathbycaptcha_password', } )

    root@kitploit:~
    #### 9kw
    
    ##### Обязательные параметры `captcha`
    
    |Параметр|Значение|Обязательный|По умолчанию|
    |-------------|:-------------:|:-----:|:-----:|
    |provider|(string) `9kw`|да||
    |api_key|(string)|да||
    |maxtimeout|(int)|нет|180|
    
    ##### Пример```python
    scraper = cloudscraper.create_scraper(
      captcha={
        'provider': '9kw',
        'api_key': 'your_9kw_api_key',
        'maxtimeout': 300
      }
    )
    

    return_response

    Используйте это, если хотите получить полезную нагрузку ответа запроса без решения капчи.

    Обязательные параметры captcha
    ПараметрЗначениеОбязательныйПо умолчанию
    provider(string) return_responseда
    Пример```python

    scraper = cloudscraper.create_scraper( captcha={'provider': 'return_response'} )

    root@kitploit:~
    ## Интеграция
    
    `cloudscraper` легко интегрируется с другими приложениями и инструментами. Cloudflare использует два cookie в качестве токенов: один для проверки того, что вы прошли их страницу с заданием, и второй для отслеживания вашей сессии. Чтобы обойти страницу с заданием, просто включите оба этих cookie (с соответствующим user-agent) во все HTTP-запросы, которые вы выполняете.
    
    Чтобы получить только cookie (в виде словаря), используйте `cloudscraper.get_tokens()`. Чтобы получить их в виде полного HTTP-заголовка `Cookie`, используйте `cloudscraper.get_cookie_string()`.
    
    `get_tokens` и `get_cookie_string` обе принимают обычные аргументы ключевых слов Requests (например, `get_tokens(url, proxies={"http": "socks5://localhost:9050"})`).
    
    Пожалуйста, прочитайте [документацию Requests об аргументах запросов](http://docs.python-requests.org/en/master/api/#requests.Session.request) для получения дополнительной информации.
    
    ------
    
    ### Обработка User-Agent
    
    Обе интеграционные функции возвращают кортеж `(cookie, user_agent_string)`.
    
    **Вы должны использовать одну и ту же строку user-agent для получения токенов и для выполнения запросов с этими токенами, иначе Cloudflare пометит вас как бота.**
    
    Это означает, что вы должны передать возвращаемую `user_agent_string` любому скрипту, инструменту или сервису, которому вы передаёте токены (например, curl или специализированному инструменту для парсинга), и он должен использовать переданный user-agent при выполнении HTTP-запросов.
    
    ------
    
    ### Примеры интеграции
    
    Помните, что вы всегда должны использовать один и тот же user-agent при получении и использовании этих cookie. Все эти функции возвращают кортеж `(cookie_dict, user_agent_string)`.
    
    ------
    
    #### Получение словаря cookie через прокси
    
    `get_tokens` — это удобная функция для возврата словаря Python, содержащего сессионные cookie Cloudflare. Для демонстрации мы настроим этот запрос на использование прокси. (Обратите внимание: если вы запрашиваете токены для прохождения проверки Cloudflare через прокси, вы всегда должны использовать тот же прокси при передаче этих токенов на сервер. Cloudflare требует, чтобы IP-адрес, прошедший проверку, и IP-адрес посетителя совпадали.)
    
    Если вы не хотите использовать прокси, просто не передавайте аргумент ключевого слова `proxies`. Эти удобные функции поддерживают все обычные ключевые аргументы Requests, такие как `params`, `data` и `headers`.```python
    import cloudscraper
    
    # Using a single proxy
    proxies = {"http": "http://localhost:8080", "https": "http://localhost:8080"}
    tokens, user_agent = cloudscraper.get_tokens("http://somesite.com", proxies=proxies)
    print(tokens)
    # => {
        'cf_clearance': 'c8f913c707b818b47aa328d81cab57c349b1eee5-1426733163-3600',
        '__cfduid': 'dd8ec03dfdbcb8c2ea63e920f1335c1001426733158',
        'cf_chl_2': 'some_value',
        'cf_chl_prog': 'some_value'
    }
    
    # Using proxy rotation
    rotating_proxies = [
        'http://user:[email protected]:8080',
        'http://user:[email protected]:8080',
        'http://user:[email protected]:8080'
    ]
    
    tokens, user_agent = cloudscraper.get_tokens(
        "http://somesite.com",
        rotating_proxies=rotating_proxies,
        proxy_options={
            'rotation_strategy': 'smart',
            'ban_time': 300
        },
        enable_stealth=True,
        stealth_options={
            'min_delay': 2.0,
            'max_delay': 6.0
        }
    )
    

    Retrieving a cookie string

    get_cookie_string — это удобная функция для возврата токенов в виде строки для использования в качестве значения HTTP-заголовка Cookie.

    Это полезно при ручном создании HTTP-запроса или при работе с внешним приложением или библиотекой, которая передаёт необработанные заголовки cookie.```python import cloudscraper

    cookie_value, user_agent = cloudscraper.get_cookie_string('http://somesite.com')

    print('GET / HTTP/1.1\nCookie: {}\nUser-Agent: {}\n'.format(cookie_value, user_agent))

    GET / HTTP/1.1

    Cookie: cf_clearance=c8f913c707b818b47aa328d81cab57c349b1eee5-1426733163-3600; __cfduid=dd8ec03dfdbcb8c2ea63e920f1335c1001426733158

    User-Agent: Some/User-Agent String

    root@kitploit:~
    #### пример curl
    
    Вот пример интеграции cloudscraper с curl. Как видите, всё, что нужно сделать, — это передать cookies и user-agent в curl.```python
    import subprocess
    import cloudscraper
    
    # With get_tokens() cookie dict:
    
    # tokens, user_agent = cloudscraper.get_tokens("http://somesite.com")
    # cookie_arg = 'cf_clearance={}; __cfduid={}'.format(tokens['cf_clearance'], tokens['__cfduid'])
    
    # With get_cookie_string() cookie header; recommended for curl and similar external applications:
    
    cookie_arg, user_agent = cloudscraper.get_cookie_string('http://somesite.com')
    
    # With a custom user-agent string you can optionally provide:
    
    # ua = "Scraping Bot"
    # cookie_arg, user_agent = cloudscraper.get_cookie_string("http://somesite.com", user_agent=ua)
    
    result = subprocess.check_output(
        [
            'curl',
            '--cookie',
            cookie_arg,
            '-A',
            user_agent,
            'http://somesite.com'
        ]
    )
    

    Урезанная версия. Выводит содержимое страниц любого сайта, защищённого Cloudflare, с помощью curl.

    Предупреждение: использование shell=True с subprocess может быть опасным в реальном коде.```python url = "http://somesite.com" cookie_arg, user_agent = cloudscraper.get_cookie_string(url) cmd = "curl --cookie {cookie_arg} -A {user_agent} {url}" print( subprocess.check_output( cmd.format( cookie_arg=cookie_arg, user_agent=user_agent, url=url ), shell=True ) )

    root@kitploit:~
    ### Cryptography
    
    #### Описание
    
    Управление связью между клиентом и сервером
    
    #### Параметры
    
    Могут быть переданы в качестве аргумента в `create_scraper()`.
    
    |Параметр|Значение|По умолчанию|
    |-------------|:-------------:|:-----:|
    |cipherSuite|(string)|None|
    |ecdhCurve|(string)|prime256v1|
    |server_hostname|(string)|None|
    
    #### Пример```python
    # Some servers require the use of a more complex ecdh curve than the default "prime256v1"
    # It may can solve handshake failure
    scraper = cloudscraper.create_scraper(ecdhCurve='secp384r1')
    

    [No input text provided to translate.]```python

    Manipulate server_hostname

    scraper = cloudscraper.create_scraper(server_hostname='www.somesite.com') scraper.get( 'https://backend.hosting.com/', headers={'Host': 'www.somesite.com'} )

    root@kitploit:~
    # Расширенные возможности
    
    Эта расширенная версия cloudscraper предоставляет лучшие возможности для обхода современных механизмов защиты Cloudflare:
    
    1. **Поддержка Cloudflare v2 Challenge** - улучшенная обработка современных challenge-запросов
    2. **Ротация прокси** - умная ротация с несколькими стратегиями
    3. **Стелс-режим** - имитация человеческого поведения
    4. **Улучшенная обработка JavaScript** - лучший интерпретатор JS (js2py по умолчанию)
    5. **Расширенное управление cookie** - поддержка новых типов cookie Cloudflare
    
    ## Последние обновления
    
    - **Очистка кодовой базы**: удалён избыточный код, всё сведено в единый модуль
    - **Обновления тестового набора**: все тесты теперь используют модуль cloudscraper
    - **Документация**: улучшен README с более понятными примерами и инструкциями по использованию
    
    ## Пример использования всех расширенных возможностей```python
    import cloudscraper
    
    # Create a scraper with all enhanced features
    scraper = cloudscraper.create_scraper(
        # Use js2py interpreter for better compatibility
        interpreter='js2py',
    
        # Enable proxy rotation
        rotating_proxies=[
            'http://user:[email protected]:8080',
            'http://user:[email protected]:8080',
            'http://user:[email protected]:8080'
        ],
        proxy_options={
            'rotation_strategy': 'smart',
            'ban_time': 300
        },
    
        # Enable stealth mode
        enable_stealth=True,
        stealth_options={
            'min_delay': 2.0,
            'max_delay': 6.0,
            'human_like_delays': True,
            'randomize_headers': True,
            'browser_quirks': True
        },
    
        # Set browser fingerprint
        browser={
            'browser': 'chrome',
            'platform': 'windows',
            'mobile': False
        },
    
        # Enable debugging if needed
        debug=False
    )
    
    # Make a request to a Cloudflare-protected site
    response = scraper.get('https://example.com')
    print(response.text)
    

    📋 Журнал изменений

    Версия 2.6.0 (последняя) 🚀

    🆕 Основные новые функции

    • Поддержка v3-задач JavaScript VM Cloudflare

      • Добавлена полная поддержка новейших v3-задач Cloudflare
      • Задачи выполняются внутри виртуальной машины JavaScript для повышения безопасности
      • Автоматическое обнаружение и обработка шаблонов v3-задач
      • Поддержка всех интерпретаторов JavaScript (js2py, nodejs, native)
      • Улучшенные механизмы резервного переключения для сложных VM-задач
    • Расширенная поддержка Turnstile

      • Улучшено обнаружение задач Cloudflare Turnstile
      • Улучшена интеграция с сервисами решения CAPTCHA
      • Поддержка всех основных провайдеров CAPTCHA (2captcha, anticaptcha и т. д.)

    🔧 Улучшения

    • Улучшения интерпретатора JavaScript

      • Улучшена совместимость с v3-задачами JavaScript VM
      • Улучшены обработка ошибок и механизмы резервного переключения
      • Расширенное создание контекста для VM-задач
    • Обнаружение задач

      • Более точное обнаружение различных типов задач
      • Более точное различие между задачами v1, v2, v3 и Turnstile
      • Улучшенные regex-шаблоны для современной защиты Cloudflare
    • Параметры конфигурации

      • Добавлен параметр disableCloudflareV3 для выборочной обработки задач
      • Улучшен вывод отладочной информации для обнаружения v3-задач
      • Улучшенные сообщения об ошибках и информация по устранению неполадок

    🧪 Тестирование и качество

    • Комплексный набор тестов

      • 100% прохождение всех основных функций
      • Отдельный скрипт тестирования v3-задач
      • Расширенное покрытие тестами всех типов задач
      • Автоматическое тестирование всех интерпретаторов JavaScript
    • Документация

      • Полная переработка README с примерами для v3
      • Добавлены подробные примеры использования
      • Улучшено руководство по устранению неполадок
      • Добавлен раздел тестирования и проверки

    🐛 Исправление ошибок

    • Исправлены проблемы совместимости с современными задачами Cloudflare
    • Улучшена обработка ошибок для граничных случаев
    • Улучшена обработка некорректных JavaScript-задач
    • Улучшено управление cookie для новых реализаций Cloudflare

    Версия 2.5.3

    Добавленные функции

    • Начальная поддержка задач Turnstile
    • Расширенные возможности ротации прокси
    • Улучшенная функциональность режима скрытности
    • Улучшенное снятие отпечатков браузера

    Версия 2.5.0

    Основные изменения

    • Консолидация кодовой базы в единый модуль
    • Расширенная поддержка v2-задач
    • Улучшенная работа с интерпретатором JavaScript
    • Добавлен комплексный набор тестов

    Благодарности

    • Оригинальный cloudscraper от VeNoMouS
    • Расширенная версия от Zied Boughdir

    Тестирование

    Библиотека включает комплексные тестовые скрипты для проверки функциональности:

    Базовый тест

    Быстрый тест для проверки работоспособности библиотеки:```python import cloudscraper

    Create a scraper instance

    scraper = cloudscraper.create_scraper(browser='chrome')

    Make a request to a Cloudflare-protected site

    response = scraper.get('https://example.com') print(f"Status code: {response.status_code}")

    root@kitploit:~
    ### Запуск набора тестов
    
    Библиотека включает несколько тестовых скриптов:```bash
    # Run the comprehensive test suite
    python test_cloudscraper_comprehensive.py https://example-cloudflare-site.com
    
    # Test with a specific Cloudflare-protected site
    python test_cloudflare_site.py https://example-cloudflare-site.com --browser firefox --stealth
    

    Советы по устранению неполадок

    Если возникли проблемы:

    1. Попробуйте другую эмуляцию браузера — некоторые сайты лучше работают с Chrome, чем с Firefox
    2. Включите скрытый режим — помогает обойти сложную защиту
    3. Используйте ротацию прокси — при блокировке по IP или ограничении частоты запросов
    4. Попробуйте другие интерпретаторы JS — js2py, nodejs или v8

    Поддержка

    По вопросам и проблемам, пожалуйста, откройте issue в репозитории GitHub.```bash pip install --upgrade cloudscraper # Always use the latest version

    root@kitploit:~
    Скачать инструмент