Repolode
lexiforest

lexiforest/curl_cffi

Cliente HTTP para Python baseado no curl que pode imitar fingerprints de TLS, JA3 e HTTP/2 de navegadores para contornar bloqueios.

Estrelas
6,769
Forks
570
Issues abertas
46
Último commit
anteontem

O que é?

curl_cffi é um binding de Python para um fork do curl-impersonate, desenvolvido com cffi. Ele oferece uma API semelhante à do requests para requisições HTTP síncronas e assíncronas, mas, ao contrário do requests ou do httpx, pode criar conexões que parecem vir de navegadores reais, imitando seus fingerprints de TLS, JA3 e HTTP/2.

A biblioteca oferece uma interface de alto nível no estilo do requests, com sessões e cookies, além de uma API curl de baixo nível. Você escolhe um navegador como alvo com um parâmetro como impersonate="chrome" ou fornece strings ja3 e akamai personalizadas para alvos que não sejam navegadores. Também há suporte a HTTP/3, proxies SOCKS e HTTP e conexões WebSocket. Além disso, o pacote inclui uma CLI chamada curl-cffi, que pode buscar URLs com impersonação.

Há wheels pré-compilados para Linux, macOS e Windows, então não é necessário compilar localmente. Os presets de fingerprint podem ser atualizados com o comando update, sem precisar atualizar o pacote.

Recursos principais

  • 01Imita fingerprints de TLS/JA3 e HTTP/2 de navegadores, inclusive fingerprints personalizados.
  • 02Oferece uma API semelhante à do requests, com sessões e clientes síncronos e asyncio.
  • 03Dá suporte a HTTP/2 e HTTP/3, além de proxies HTTP e SOCKS.
  • 04Inclui clientes WebSocket com impersonação de navegador durante o handshake.
  • 05Inclui a CLI curl-cffi para buscar URLs com impersonação.

Casos de uso

  • Buscar páginas em sites que bloqueiam requisições com base nos fingerprints de TLS do requests ou do httpx.
  • Criar scrapers da web que precisam de concorrência com asyncio e rotação de proxies.
  • Testar como um serviço responde a fingerprints específicos de navegadores.
  • Usar Scrapy ou código baseado no requests com comportamento de TLS semelhante ao de navegadores.

Início rápido

  1. 1

    Instale o pacote pelo PyPI

    pip install curl_cffi --upgrade
  2. 2

    Faça uma requisição que se passe pelo Chrome

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

Antes de usar

  • Alguns recursos avançados, como as impressões digitais de http/3, exigem uma versão recente.
  • O suporte comercial e as impressões digitais extras são oferecidos em um plano pago.

Tópicos

Perguntas frequentes

O que é curl_cffi?
Cliente HTTP para Python baseado no curl que pode imitar fingerprints de TLS, JA3 e HTTP/2 de navegadores para contornar bloqueios. curl_cffi é um binding de Python para um fork do curl-impersonate, desenvolvido com cffi. Ele oferece uma API semelhante à do requests para requisições HTTP síncronas e assíncronas, mas, ao contrário do requests ou do httpx, pode criar conexões que parecem vir de navegadores reais, imitando seus fingerprints de TLS, JA3 e HTTP/2.
curl_cffi é gratuito? Qual é a licença?
curl_cffi é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
curl_cffi ainda é mantido?
Manutenção ativa. O último commit de curl_cffi foi em 23 de out. de 2026.
Para que posso usar curl_cffi?
Buscar páginas em sites que bloqueiam requisições com base nos fingerprints de TLS do requests ou do httpx. Criar scrapers da web que precisam de concorrência com asyncio e rotação de proxies. Testar como um serviço responde a fingerprints específicos de navegadores. Usar Scrapy ou código baseado no requests com comportamento de TLS semelhante ao de navegadores.
Como instalar curl_cffi?
Instale o pacote pelo PyPI: pip install curl_cffi --upgrade Faça uma requisição que se passe pelo Chrome: python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"
Onde consigo curl_cffi?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/lexiforest/curl_cffi

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados