Skip to content

Repository files navigation

FlareSolverr v3 Go Client

License: MIT GitHub issues static analysis FOSSA Status

go-flaresolverr is Golang client for FlareSolverr v3.

Installation

  1. Install FlareSolverr
  2. Get go-flaresolverr
go get github.com/astrocode-id/go-flaresolverr

Examples

Get Page

Retrieves webpage using request.get command.

package main

import (
	"errors"
	"fmt"
	"log"

	"github.com/astrocode-id/go-flaresolverr"
)

func main() {
	c, err := flaresolverr.NewClient(flaresolverr.Config{
		BaseURL: baseURL,
	})
	if err != nil {
		log.Fatal(err)
	}

	r, err := c.Get("https://httpbin.org/ip",
		flaresolverr.WithMaxTimeout(60000),
	)
	if err != nil {
		log.Fatal(err)
	}
	if r.Status != "ok" {
		log.Fatal(errors.New(r.Message))
	}

	fmt.Println(r.Solution.Response)
}

Post Page

Retrieves webpage using request.post command.

package main

import (
	"errors"
	"fmt"
	"log"
	"net/url"

	"github.com/astrocode-id/go-flaresolverr"
)

func main() {
	c, err := flaresolverr.NewClient(flaresolverr.Config{
		BaseURL: baseURL,
	})
	if err != nil {
		log.Fatal(err)
	}

	r, err := c.Post("https://httpbin.org/post", url.Values{
		"key1": {"valueA"},
		"key2": {"valueB"},
	})
	if err != nil {
		log.Fatal(err)
	}
	if r.Status != "ok" {
		log.Fatal(errors.New(r.Message))
	}

	fmt.Println(r.Solution.Response)
}

Options

Both Get and Post accept optional parameters, which map to the base parameters supported by the FlareSolverr API:

  • WithMaxTimeout(ms int)
  • WithCookies(cookies flaresolverr.Cookies)
  • WithReturnOnlyCookies(v bool)
  • WithWaitInSeconds(s int)
  • WithDisableMedia(v bool)

session, session_ttl_minutes, proxy, returnScreenshot, and tabs_till_verify are part of the FlareSolverr API but aren't supported by this client yet.

Session

TODO: not supported yet.

Proxy

TODO: not supported yet.

License

FOSSA Status