Home > OS >  Golang Simulate Page Visit : Surf Not Triggering Javascript
Golang Simulate Page Visit : Surf Not Triggering Javascript

Time:01-07

I have a Go program that is just simulating a local web page being visited using Surf (gopkg.in/headzoo/surf.v1) but it seems that the Javascript on the page is not being executed. Just to test I have the web page doing an ajax call to another route on the server that will just output a response on the server side.

<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>

Then the Go Surf function to visit the page, this route also outputs a response on the server side which is showing up but the one from the ajax request is not showing up.

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) }

}

To make sure it is only happening from Surf I also tested it with Chromedp (github.com/chromedp/chromedp) which gave both responses correctly.

Is this a limitation with Surf or am I doing something silly?

CodePudding user response:

Surf does not include a JS runtime. It does support the downloading of scripts, but it will never actually execute them.

  •  Tags:  
  • Related