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>
4.8 KiB
4.8 KiB
YouTube Comments Scraper
Ejemplo de uso de navegator para extraer comentarios de videos de YouTube de manera sigilosa.
Características
- ✅ Extracción de comentarios con autor, texto y likes
- ✅ Modo headless para producción
- ✅ Ventana pequeña para desarrollo/testing
- ✅ Manejo automático de banner de cookies
- ✅ Scroll automático para activar lazy loading
- ✅ Stealth flags para evitar detección
- ✅ Perfiles persistentes (cookies y sesiones se mantienen)
Uso
Modo básico (headless por defecto)
go run examples/youtube_comments.go
Modo visible (para debugging)
go run examples/youtube_comments.go -visible
Especificar video y número de comentarios
go run examples/youtube_comments.go -url "https://www.youtube.com/watch?v=VIDEO_ID" -n 20
Todas las opciones
go run examples/youtube_comments.go -visible -url "URL_DEL_VIDEO" -n 15
Parámetros
| Flag | Descripción | Default |
|---|---|---|
-visible |
Ejecutar con interfaz gráfica (para debugging) | false (headless) |
-url |
URL del video de YouTube | Video de ejemplo |
-n |
Número máximo de comentarios a extraer | 10 |
Compilar binario
Para crear un binario standalone:
go build -o youtube-comments examples/youtube_comments.go
Luego usar:
# Modo headless (default)
./youtube-comments -n 20
# Modo visible para debugging
./youtube-comments -visible -n 20
Ejemplo de salida
🚀 Lanzando navegador...
✅ Navegador iniciado. Perfil: /home/user/.navegator/profiles/youtube-scraper
📺 Navegando a YouTube: https://www.youtube.com/watch?v=S1J8rx2Jw98
📊 Extrayendo hasta 5 comentarios
⏳ Esperando a que cargue la página...
🍪 Cookie banner clicked
📜 Haciendo scroll para cargar comentarios...
⏳ Esperando a que aparezcan los comentarios...
📝 Extrayendo comentarios...
================================================================================
📋 COMENTARIOS EXTRAÍDOS:
================================================================================
1. @herrpez (1K likes)
Insane move. Guy is clearly flying that route in August...
2. @roland_does_things (336 likes)
This is the moment you treat all your friends to a great trip to Sicily...
3. @Starcraft2Krauts (440 likes)
Getting money from Wizz air took me months and threatening a lawsuit...
================================================================================
📌 Información del Video:
================================================================================
Título: I Tried to Profit From Flight Delays Using Data
Vistas: 43,845 views
✅ Extracción completada exitosamente!
Cómo funciona
- Lanzamiento del navegador: Inicia Chrome/Chromium con flags stealth
- Navegación: Carga el video de YouTube especificado
- Cookies: Detecta y acepta automáticamente el banner de cookies
- Scroll: Hace scroll progresivo para activar el lazy loading de comentarios
- Extracción: Usa JavaScript para extraer los datos de cada comentario
- Formato: Muestra los comentarios de manera legible en la terminal
Selectores utilizados
El script utiliza los siguientes selectores CSS de YouTube:
ytd-comment-thread-renderer: Contenedor de cada comentario#author-text: Nombre del autor#content-text: Texto del comentario.published-time-text a: Fecha de publicación#vote-count-middle: Contador de likes
Notas
- Perfiles persistentes: El navegador guarda cookies y sesiones en
~/.navegator/profiles/youtube-scraper/ - Timeouts: Si la página tarda mucho en cargar, aparecerá una advertencia pero continuará la ejecución
- Stealth: El navegador se configura con flags anti-detección para evitar ser bloqueado
- Ventana pequeña: Se usa ventana de 600x400 para menor consumo de recursos
- Headless por defecto: El navegador corre en segundo plano sin interfaz gráfica (usa
-visiblepara debugging)
Troubleshooting
No se encuentran comentarios
- Verifica que el video tenga comentarios habilitados
- Aumenta el tiempo de espera modificando los
time.Sleep() - Ejecuta con
-visiblepara ver qué está pasando en el navegador
Timeout al navegar
- Es normal, el script continúa de todos modos
- YouTube carga muchos recursos en segundo plano
- La advertencia no afecta la extracción de comentarios
Selectores no funcionan
- YouTube puede cambiar su estructura HTML
- Ejecuta con
-visiblee inspecciona la página - Actualiza los selectores en el script según sea necesario
Próximas mejoras
- Exportar comentarios a JSON
- Extraer respuestas a comentarios
- Ordenar por fecha, likes, etc.
- Extraer información adicional (avatares, badges, etc.)
- Scroll infinito para extraer todos los comentarios