3253828fef
Add complete navegator system for stealthy browser automation: - CDP client with WebSocket communication - Browser API with navigation, storage, network, runtime - Stealth flags and anti-detection scripts - Persistent profile support - Examples and comprehensive documentation Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
⚠️ NOTA IMPORTANTE - YouTube y Modo Headless
Problema Detectado
YouTube detecta el modo headless y no carga los comentarios cuando el navegador está en ese modo, incluso con todas las flags stealth activadas.
Resultados de Testing
✅ Modo Visible (funciona)
go run examples/youtube_comments.go -visible -n 5
Resultado: Extrae comentarios exitosamente
❌ Modo Headless (no funciona)
go run examples/youtube_comments.go -n 5
Resultado: No encuentra comentarios (YouTube los bloquea)
Soluciones
Opción 1: Usar Modo Visible (Recomendado para YouTube)
config.StealthFlags.Headless = false
config.StealthFlags.WindowSize = [2]int{600, 400} // Ventana pequeña
Opción 2: Usar Xvfb (Linux) para simular display
# Instalar Xvfb
sudo apt-get install xvfb
# Ejecutar con display virtual
xvfb-run -a go run examples/youtube_comments.go
Opción 3: Ajustar el Script para Usar Selector de Comments Button
En lugar de scrollear directamente a los comentarios, podemos hacer click en el botón de comentarios primero:
// Click en el botón/section de comentarios
document.querySelector('#comments')?.scrollIntoView();
Opción 4: Usar API de YouTube (Alternativa)
Si necesitas headless absoluto, considera usar la YouTube Data API v3 en lugar de scraping.
Por Qué Sucede
YouTube usa múltiples técnicas de detección:
- Verifica
navigator.webdriver(ya lo manejamos con stealth) - Detecta características ausentes en headless Chrome
- Analiza patrones de comportamiento del usuario
- Puede usar WebGL fingerprinting
- Detecta ausencia de interacción humana
Recomendación Final
Para este caso de uso específico (extracción de comentarios de YouTube):
- Desarrollo/Testing: Usar
-visiblecon ventana pequeña - Producción: Usar Xvfb o un servidor con display virtual
- Alternativa: Considerar YouTube Data API para uso a escala
Estado Actual del Código
El código está configurado para:
- ✅ Headless por defecto
- ✅ Ventana pequeña (600x400)
- ✅ Cierre explícito del navegador
- ✅ Flags stealth optimizadas
- ⚠️ Pero YouTube bloquea comentarios en headless
Próximos Pasos Sugeridos
- Agregar flag
--force-displayque use Xvfb automáticamente - Implementar detector de "comentarios bloqueados" y reintento en modo visible
- Agregar opción de usar YouTube Data API como fallback
- Investigar si headless=new de Chrome evita la detección