es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Simular visita a una página en Golang: Surf no activa Javascript.

Tengo un programa Go que simula una página web local visitada utilizando Surf (gopkg.in/headzoo/surf.v1), pero parece que el JavaScript en la página no se está ejecutando. Solo para probar, tengo la página web haciendo una llamada ajax a otra ruta en el servidor que simplemente mostrará una respuesta en el lado del servidor.

<html>
<head>
<script src="jquery.min.js"></script>
</head>
<body>
<script>
$.ajax ({
url : "/test",
type : "GET",
success : function(res) {},
error : function(res) {}
});
</script>
</body>
</html>

Luego, la función Go de Surf para visitar la página, esta ruta también muestra una respuesta en el lado del servidor que está apareciendo, pero la de la solicitud ajax no está apareciendo.

func simulateVisit() {

bow := surf.NewBrowser()
bow.SetUserAgent("LocalCrawler/1.0")

err := bow.Open("http://127.0.0.1/page")
if err != nil { fmt.Println(err) }

}

Para asegurarme de que solo ocurre con Surf, también lo probé con Chromedp (github.com/chromedp/chromedp), que mostró ambas respuestas correctamente.

¿Es esto una limitación de Surf o estoy haciendo algo tonto?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que Surf puede no tener la capacidad de ejecutar Javascript en la página web que se está visitando. Esto podría ser porque está más enfocado en la extracción de información web y no en la representación de páginas completas. Es posible que haya una configuración o ajuste que necesite cambiarse en Surf para habilitar la ejecución de Javascript, pero podría ser más fácil cambiar a una herramienta que ya tenga esta capacidad, como Chromedp mencionado en la pregunta. También es posible que el problema pueda ser causado por un error en el código, pero sin más información es difícil determinar si este es el caso.

Comments are closed.