Repolode
lexiforest

lexiforest/curl_cffi

HTTP-клиент для Python на базе curl, который имитирует TLS-, JA3- и HTTP/2-отпечатки браузеров, помогая обходить блокировки.

Звёзды
6,769
Форки
570
Открытые issues
46
Последний коммит
позавчера

Что это?

curl_cffi — это биндинг для Python к форку curl-impersonate, созданный на базе cffi. Он предоставляет API в стиле requests для синхронных и асинхронных HTTP-запросов. В отличие от requests и httpx, библиотека может устанавливать соединения, похожие на соединения настоящих браузеров, имитируя их TLS-, JA3- и HTTP/2-отпечатки.

Библиотека предлагает высокоуровневый интерфейс в стиле requests с сессиями и cookies, а также низкоуровневый API curl. Целевой браузер выбирается параметром вроде impersonate="chrome"; для целей, не связанных с браузерами, можно указать собственные строки ja3 и akamai. Также поддерживаются HTTP/3, SOCKS- и HTTP-прокси, а также WebSocket-соединения. В комплект входит CLI curl-cffi, который может загружать URL с имитацией браузера.

Готовые wheels доступны для Linux, macOS и Windows, поэтому собирать библиотеку локально не нужно. Пресеты отпечатков можно обновить командой update, не обновляя пакет.

Ключевые возможности

  • 01Имитирует TLS-, JA3- и HTTP/2-отпечатки браузеров, в том числе с использованием собственных отпечатков.
  • 02Предоставляет API в стиле requests с сессиями, а также синхронные и asyncio-клиенты.
  • 03Поддерживает HTTP/2 и HTTP/3, а также HTTP- и SOCKS-прокси.
  • 04Включает WebSocket-клиенты с имитацией браузера при рукопожатии.
  • 05В комплект входит CLI curl-cffi для загрузки URL с имитацией браузера.

Сценарии использования

  • Загрузка страниц с сайтов, которые блокируют запросы по TLS-отпечатку, если они отправлены через requests или httpx.
  • Создание веб-скрейперов, которым нужны параллельные запросы через asyncio и ротация прокси.
  • Тестирование реакции сервиса на определённые отпечатки браузеров.
  • Использование Scrapy или кода на базе requests с TLS-поведением, похожим на браузерное.

Быстрый старт

  1. 1

    Установите пакет из PyPI

    pip install curl_cffi --upgrade
  2. 2

    Отправьте запрос, имитирующий Chrome

    python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"

Что важно знать

  • Для некоторых расширенных функций, например отпечатков http/3, требуется актуальная версия.
  • Коммерческая поддержка и дополнительные отпечатки доступны в платном тарифе.

Темы

Частые вопросы

Что такое curl_cffi?
HTTP-клиент для Python на базе curl, который имитирует TLS-, JA3- и HTTP/2-отпечатки браузеров, помогая обходить блокировки. curl_cffi — это биндинг для Python к форку curl-impersonate, созданный на базе cffi. Он предоставляет API в стиле requests для синхронных и асинхронных HTTP-запросов. В отличие от requests и httpx, библиотека может устанавливать соединения, похожие на соединения настоящих браузеров, имитируя их TLS-, JA3- и HTTP/2-отпечатки.
curl_cffi можно использовать бесплатно? Какая у него лицензия?
curl_cffi распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
curl_cffi всё ещё поддерживается?
Активно поддерживается. Последний коммит в curl_cffi — 23 окт. 2026 г..
Для чего можно использовать curl_cffi?
Загрузка страниц с сайтов, которые блокируют запросы по TLS-отпечатку, если они отправлены через requests или httpx. Создание веб-скрейперов, которым нужны параллельные запросы через asyncio и ротация прокси. Тестирование реакции сервиса на определённые отпечатки браузеров. Использование Scrapy или кода на базе requests с TLS-поведением, похожим на браузерное.
Как установить curl_cffi?
Установите пакет из PyPI: pip install curl_cffi --upgrade Отправьте запрос, имитирующий Chrome: python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"
Где скачать curl_cffi?
Исходный код и инструкции по установке — на GitHub: https://github.com/lexiforest/curl_cffi

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Библиотека для Java, которая выполняет обычные команды curl как вызовы методов: можно вставлять команды из Postman или browser DevTools, не написав ни строки кода HTTP-клиента.

1,1 тыс.71JavaApache-2.0Обновлён 10 дней назад