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

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

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

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

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

Категории

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

cloudscraper

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

Репозиторий
6.7k6381 год назадПроверено Kitploit

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

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% успешностью для основной функциональности:

*Требуется внешняя конфигурация (прокси/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 или

Пример```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
Примечание

если прокси настроены, вы можете отключить отправку прокси в 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
Пример```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:~
Скачать инструмент
ФункцияПокрытие тестамиПроцент прохождения
Базовые запросы✅ Полное100%
Обработка User-Agent✅ Полное100%
Вызовы Cloudflare v1✅ Полное100%
Вызовы Cloudflare v2✅ Полное100%
Вызовы Cloudflare v3✅ НОВОЕ100%
Стелс-режим✅ Полное100%
Интерпретаторы JavaScript✅ Все поддерживаются100%
Ротация прокси✅ ПолноеН/Д*
Поддержка Turnstile✅ ПолноеН/Д*
smart
sequential
ban_time(int) количество секунд блокировки прокси после сбоя300
ParameterValueRequiredDefault
provider(string) 2captchaда
api_key(string)да
no_proxy(boolean)нетFalse
ПараметрЗначениеОбязателенПо умолчанию
provider(string) deathbycaptchaда
username(string)да
password(string)да