curl-impersonate — requests que parecen de navegador real
⚠️ Corrección 2026-09-05 (auditoría stars-explorer): la v1 documentaba build con CMake (
mkdir build && cmake ..). El repo usa autotools (./configure+make chrome-build/firefox-build), y es principalmente un build/fork de curl para CLI (no solo "librería").
Repo: https://github.com/lwthiker/curl-impersonate (fork de curl en C, ~7K⭐). Bindings Python: lexiforest/curl_cffi (targets válidos: chrome120, safari15_5).
When to Use
- Cuando un sitio web bloquee requests por fingerprint de TLS/User-Agent y necesites que la petición parezca de un navegador real (Chrome, Edge, Safari, Firefox).
- Para scraping de webs con protecciones anti-bot que no caen con un curl normal.
Qué es
Un build especial de curl: fork parcheado para imitar el fingerprint TLS/HTTP2 de navegadores reales. Se usa principalmente como CLI (wrappers curl_chrome* / curl_ff*) y opcionalmente como libcurl enlazable. Impersona Chrome, Edge, Safari y Firefox.
Uso (build autotools)
./configure
make chrome-build # (o make firefox-build)
sudo make chrome-install # (o sudo make firefox-install)
# Tras instalar, el acceso es via binarios tipo curl_chrome116, curl_ff117...
(NO usa CMake en la raíz — no hay CMakeLists.txt; el build es autotools, ver INSTALL.md.)
Python (recomendado, simple)
pip install curl_cffi
from curl_cffi import requests as creq
r = creq.get('https://web.com', impersonate='chrome120') # o chromium/safari...
Pitfalls
- Build:
./configure+make chrome-build/firefox-build+install— nomkdir build && cmake ... - Es fork/build de curl orientado a CLI; describirlo solo como "librería" omite el rol central.
- Cubre Chrome, Edge, Safari y Firefox (no solo los 3 de la v1).
Verificación
- Build con autotools y hacer
curl_chrome116 https://ejemplo.com(ocurl_cfficonimpersonate='chrome120'); comprobar que un WAF que bloquea curl normal deja pasar la petición.