Técnicas de Scraping Sigiloso
Evada los sistemas de detección anti-bots con huellas digitales avanzadas del navegador, rotación de IP, suplantación de user-agent y estrategias de gestión de CAPTCHA.
1. Uso de la herramienta stealth_mode
La herramienta stealth_mode aplica automáticamente técnicas anti-detección que incluyen la aleatorización de huellas digitales, la suplantación de WebRTC y el ruido de canvas.
Úselo para: sitios con poca protección, scrapers sencillos
Úselo para: la mayoría de sitios comerciales, protección moderada
Úselo para: sitios con alta protección, Cloudflare, Akamai
Scraping sigiloso básico
3 credits
curl -X POST https://crawlforge.dev/api/v1/tools/stealth_mode \
-H "X-API-Key: cf_test_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://protected-site.com",
"level": "medium",
"randomizeFingerprint": true
}'Avanzado: sigilo + proxy + encabezados personalizados
const response = await fetch('https://crawlforge.dev/api/v1/tools/stealth_mode', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url: 'https://highly-protected-site.com',
level: 'advanced',
randomizeFingerprint: true,
proxy: {
server: 'http://proxy.example.com:8080',
username: 'proxy_user',
password: 'proxy_pass'
},
customHeaders: {
'Accept-Language': 'en-US,en;q=0.9',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': 'https://google.com',
'Sec-Fetch-Dest': 'document',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-Site': 'none'
},
geolocation: {
latitude: 40.7128,
longitude: -74.0060,
accuracy: 100
},
timezone: 'America/New_York',
locale: 'en-US'
}),
});
const data = await response.json();
console.log('Successfully bypassed protection');2. Huellas digitales del navegador
Los sistemas anti-bots usan las huellas digitales del navegador para detectar navegadores automatizados. Aleatorice las huellas digitales para evitar la detección.
stealth_mode aleatoriza automáticamente todas estas señales de huellas digitales, haciendo que cada solicitud parezca provenir de un navegador real único.3. Rotación de IP y proxies
Use proxies rotativos para distribuir las solicitudes entre distintas direcciones IP.
- Proxies de centro de datos
- ✅ Rápidos (latencia de 50-150 ms)
- ✅ Económicos ($1-5/GB)
- ❌ Fáciles de detectar
- ❌ Mayor tasa de bloqueo
- Ideales para: sitios con poca protección, scraping de alto volumen
- Proxies residenciales (recomendados)
- ✅ IP de usuarios reales (difíciles de detectar)
- ✅ Baja tasa de bloqueo
- ⚠️ Más lentos (latencia de 200-500 ms)
- ⚠️ Costosos ($5-15/GB)
- Ideales para: sitios con alta protección, comercio electrónico, redes sociales
- Proxies móviles
- ✅ Mayor tasa de éxito (IP 4G/5G)
- ✅ Casi indetectables
- ❌ Muy costosos ($50-100/GB)
- ❌ Los más lentos (latencia de 300-1000 ms)
- Ideales para: sigilo máximo, objetivos premium
Estrategia de rotación de IP
// Rotating proxy pool
const proxyPool = [
'http://user:pass@proxy1.example.com:8080',
'http://user:pass@proxy2.example.com:8080',
'http://user:pass@proxy3.example.com:8080',
'http://user:pass@proxy4.example.com:8080',
'http://user:pass@proxy5.example.com:8080'
];
let currentProxyIndex = 0;
function getNextProxy() {
const proxy = proxyPool[currentProxyIndex];
currentProxyIndex = (currentProxyIndex + 1) % proxyPool.length;
return proxy;
}
// Scrape with rotating proxies
async function scrapeWithRotatingProxy(url: string) {
const proxy = getNextProxy();
const response = await fetch('https://crawlforge.dev/api/v1/tools/stealth_mode', {
method: 'POST',
headers: {
'X-API-Key': process.env.CRAWLFORGE_API_KEY!,
'Content-Type': 'application/json',
},
body: JSON.stringify({
url,
level: 'medium',
proxy: { server: proxy }
}),
});
return await response.json();
}
// Scrape multiple URLs with different proxies
const urls = ['https://example.com/1', 'https://example.com/2', 'https://example.com/3'];
const results = await Promise.all(urls.map(scrapeWithRotatingProxy));4. Gestión de CAPTCHA
Estrategias para lidiar con los desafíos de CAPTCHA.
- Evite que se activen los CAPTCHA
- Use el modo sigiloso, rote las IP, respete los límites de tasa y añada retrasos aleatorios (2-5 segundos entre solicitudes)
- ✅ La mejor estrategia: prevenir es más fácil que resolver
- Use servicios de resolución de CAPTCHA
- Integre con 2Captcha, Anti-Captcha o DeathByCaptcha ($1-3 por cada 1,000 CAPTCHA)
- ⚠️ Añade costo y latencia (10-30 segundos)
- Busque fuentes de datos alternativas
- Busque APIs, fuentes RSS, mapas de sitio o sitios asociados sin CAPTCHA
- ✅ La solución más fiable a largo plazo
- Intervención manual
- Ponga los desafíos de CAPTCHA en una cola para que los resuelvan operadores humanos
- ❌ Solo viable para scraping de bajo volumen
Resumen de mejores prácticas
- Comience siempre con el nivel "medium" de
stealth_mode - Use proxies residenciales para sitios con alta protección
- Rote los proxies cada 10-20 solicitudes
- Añada retrasos aleatorios entre solicitudes (2-5 segundos)
- Haga coincidir la geolocalización con la ubicación del proxy (use la herramienta
localization) - Respete robots.txt y los límites de tasa
- Supervise las tasas de bloqueo y ajuste la estrategia en consecuencia