User Agent

Set the user agent this browser instance will send with each request.

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

Or set the user agent globally so every new browser you create uses it.

browser.DefaultUserAgent = "SuperCrawler/1.0"

Attributes

Attributes control how the browser behaves. Use the SetAttribute() method to set attributes one at a time.

bow := surf.NewBrowser()
bow.SetAttribute(browser.SendReferer, false)
bow.SetAttribute(browser.MetaRefreshHandling, false)
bow.SetAttribute(browser.FollowRedirects, false)

Or set the attributes all at once using SetAttributes().

bow := surf.NewBrowser()
bow.SetAttributes(browser.AttributeMap{
    browser.SendReferer:         surf.DefaultSendReferer,
    browser.MetaRefreshHandling: surf.DefaultMetaRefreshHandling,
    browser.FollowRedirects:     surf.DefaultFollowRedirects,
})

The attributes can also be set globally. Now every new browser you create will be set with these defaults.

surf.DefaultSendReferer = false
surf.DefaultMetaRefreshHandling = false
surf.DefaultFollowRedirects = false

Storage Jars

Override the build in cookie jar. Surf uses cookiejar.Jar by default.

bow := surf.NewBrowser()
bow.SetCookieJar(jar.NewMemoryCookies())

Override the build in bookmarks jar. Surf uses jar.MemoryBookmarks by default.

bow := surf.NewBrowser()
bow.SetBookmarksJar(jar.NewMemoryBookmarks())

Use jar.FileBookmarks to read and write your bookmarks to a JSON file.

bookmarks, err = jar.NewFileBookmarks("/home/joe/bookmarks.json")
if err != nil { panic(err) }
bow := surf.NewBrowser()
bow.SetBookmarksJar(bookmarks)