Habilidades go-rod-master
📦

go-rod-master

Riesgo bajo 🌐 Acceso a red⚙️ Comandos externos

Automatiza navegadores y extrae datos de sitios web con go-rod

¿Tienes problemas con la detección de bots y la automatización compleja de navegadores en Go? Esta habilidad proporciona patrones listos para producción para el control de navegadores headless con capacidades de sigilo integradas.

Soporta: Claude Codex Code(CC)
📊 70 Adecuado
1

Descargar el ZIP de la skill

2

Subir en Claude

Ve a Configuración → Capacidades → Skills → Subir skill

3

Activa y empieza a usar

Pruébalo

Usando "go-rod-master". Navegar a GitHub y extraer información del repositorio

Resultado esperado:

Título de la página: GitHub: Let's build from here
Encontrados 127 enlaces en la página
Resultado de búsqueda: go-rod/rod - Controlador DevTools Protocol para Go

Usando "go-rod-master". Verificar que el modo sigiloso pasa las pruebas de detección de bots

Resultado esperado:

Captura guardada en stealth_result.png
User Agent: true
WebDriver: missing (passed)
Chrome: present (passed)
Plugins Length: 3
Languages: en-US,en

Auditoría de seguridad

Riesgo bajo
v1 • 2/25/2026

Static analysis detected 279 potential issues but all are false positives from pattern matching on markdown documentation and Go import statements. The 'external_commands' findings are markdown table separators (|), not shell execution. The 'scripts' findings are Go import statements, not JavaScript. Network findings are example URLs in documentation, which is expected for a browser automation tutorial. One critical finding for 'keylogger keywords' at SKILL.md:515 references legitimate keyboard input simulation (page.Keyboard.MustType) for browser automation, not malicious keylogging. Screen capture findings reference screenshot functionality for testing. Overall risk is low due to legitimate browser automation use case with proper resource cleanup patterns documented.

6
Archivos escaneados
996
Líneas analizadas
6
hallazgos
1
Auditorías totales
Problemas de riesgo bajo (4)
Network requests to external URLs
Example code contains hardcoded URLs for demonstration purposes. This is expected behavior for a browser automation tutorial skill.
Keyboard input simulation capability
The skill documents keyboard input methods (MustType, MustPress) which could theoretically be misused but are standard browser automation APIs.
Screenshot and screen capture functionality
Documentation includes screenshot methods (MustScreenshot, ScrollScreenshot) which capture page content.
Proxy configuration support
Documentation shows SOCKS5 proxy configuration for routed traffic, which could enable traffic obfuscation.
Auditado por: claude

Puntuación de calidad

41
Arquitectura
100
Mantenibilidad
87
Contenido
50
Comunidad
82
Seguridad
78
Cumplimiento de la especificación

Lo que puedes crear

Pipeline de Web Scraping

Construye scrapers confiables para sitios web dinámicos con mucho JavaScript que cargan contenido vía AJAX. Usa el modo sigiloso para evitar la detección y pools de páginas para scraping concurrente.

Pruebas Automatizadas

Crea pruebas de navegador end-to-end para aplicaciones web con estrategias de espera adecuadas, interacción con elementos y captura de capturas de pantalla para regresión visual.

Investigación de Detección de Bots

Estudia y prueba sistemas de detección de bots comparando resultados de huellas digitales antes y después de aplicar evasiones de sigilo.

Prueba estos prompts

Web Scraping Básico
Escribe un script en Go usando go-rod que navegue a un sitio web de noticias, espere a que la página cargue y extraiga todos los titulares de artículos con sus enlaces. Incluye manejo de errores adecuado y limpieza de recursos.
Scraping Sigiloso con Anti-Detección
Crea un scraper listo para producción usando go-rod/stealth que pueda evitar la detección básica de bots. Incluye configuración de proxy, retrasos aleatorios entre acciones y verificación usando una página de prueba de detección de bots.
Intercepción de Solicitudes de Red
Construye un script go-rod que intercepte todas las llamadas API realizadas por una aplicación de una sola página, registre datos de solicitud/respuesta y modifique cuerpos de respuesta para inyectar seguimiento JavaScript personalizado.
Scraper Concurrente con Page Pool
Implementa un scraper de alto rendimiento usando rod.PagePool que procese una lista de 100+ URLs concurrentemente con un máximo de 5 páginas simultáneas. Incluye agregación de resultados, manejo de errores y limpieza adecuada.

Mejores prácticas

  • Usa siempre stealth.MustPage() en lugar de browser.MustPage() para sitios del mundo real para evitar la detección de bots
  • Usa defer browser.MustClose() inmediatamente después de conectarte para asegurar la limpieza incluso con errores
  • Reemplaza las llamadas time.Sleep() con los métodos de espera integrados de Rod como MustWaitStable() y MustWaitRequestIdle()

Evitar

  • Crear una nueva instancia de Browser por tarea - crea un solo Browser y usa múltiples instancias de Page
  • Usar métodos Must* en código de producción - usa métodos que retornan errores para manejo explícito de errores
  • Olvidar llamar go router.Run() después de configurar rutas hijack - el router debe iniciarse

Preguntas frecuentes

¿Cómo ejecuto go-rod sin descargar Chromium?
Usa launcher.NewBrowser().MustGet() para pre-descargar, o establece la opción Launcher.Leakless(false). También puedes conectarte a una instancia existente de Chrome usando su URL WebSocket con rod.New().ControlURL(wsURL).MustConnect().
¿Por qué sigo siendo detectado por Cloudflare después de usar stealth?
Stealth maneja huellas digitales comunes, pero los sistemas avanzados pueden requerir medidas adicionales: usa proxies residenciales, añade retrasos similares a humanos entre acciones, randomiza tamaños de viewport e implementa patrones de comportamiento como desplazamiento y hover aleatorios.
¿Cómo manejo iframes y elementos del Shadow DOM?
Usa page.MustSearch() en lugar de page.MustElement() - busca en todos los iframes y cruza límites de Shadow DOM como Ctrl+F de DevTools. Alternativamente, cambia el contexto al iframe primero usando page.MustElement("iframe").MustFrame().
¿Cuál es la diferencia entre MustWaitLoad() y MustWaitRequestIdle()?
MustWaitLoad() espera el evento de carga de la página, mientras que MustWaitRequestIdle() espera hasta que no haya solicitudes de red pendientes. Para páginas con mucho AJAX, MustWaitRequestIdle() es más confiable ya que el contenido puede cargarse después de la carga inicial de la página.
¿Puedo usar extensiones de Chrome con go-rod?
Sí, pero las extensiones requieren modo headed. Usa launcher.New().Set("load-extension", "/path/to/extension").Headless(false).MustLaunch() para cargar extensiones. El modo headless no admite extensiones.
¿Cómo manejo las descargas de archivos?
Usa browser.MustWaitDownload() que retorna una función de espera. Llámala antes de activar la descarga, luego después de hacer clic en el enlace de descarga, llama la función de espera para obtener los datos del archivo descargado como un slice de bytes.