cdp

package
v0.0.0-...-d5751c4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InputMouseButtonLeft    = proto.InputMouseButtonLeft
	InputMouseButtonMiddle  = proto.InputMouseButtonMiddle
	InputMouseButtonRight   = proto.InputMouseButtonRight
	InputMouseButtonBack    = proto.InputMouseButtonBack
	InputMouseButtonForward = proto.InputMouseButtonForward
)
View Source
const (
	InputMouseButtonSingleClick = 1
	MouseButtonDoubleClick      = 2
)

Variables

This section is empty.

Functions

func MustToJSONBytes

func MustToJSONBytes(data interface{}) ([]byte, error)

MustToJSONBytes encode data to json bytes

func OutputFile

func OutputFile(p string, data interface{}) error

OutputFile auto creates file if not exists, it will try to detect the data type and auto output binary, string or json

Types

type Browser

type Browser struct {
	Browser *rod.Browser
}

func NewBrowser

func NewBrowser(url string) (*Browser, error)

func (*Browser) Close

func (b *Browser) Close() error

func (*Browser) NewPage

func (b *Browser) NewPage() (*Page, error)

func (*Browser) Prepare

func (b *Browser) Prepare() error

func (*Browser) WaitDownload

func (b *Browser) WaitDownload(dir string) func() (info *proto.PageDownloadWillBegin)

type BrowserManager

type BrowserManager interface {
	Prepare() error
	Close() error

	NewPage() (*Page, error)
	WaitDownload(dir string) func() (info *proto.PageDownloadWillBegin)
}

type BrowserPool

type BrowserPool struct {
	Pool chan BrowserManager
}

func NewBrowserPool

func NewBrowserPool(workers int) *BrowserPool

func (*BrowserPool) Cleanup

func (p *BrowserPool) Cleanup() error

func (*BrowserPool) Get

func (p *BrowserPool) Get(url string) (*Browser, error)

func (*BrowserPool) Put

func (p *BrowserPool) Put(b BrowserManager)

type BrowserPoolManager

type BrowserPoolManager interface {
	Get(url string) (*Browser, error)
	Put(b BrowserManager)
	Cleanup() error
}

type Logger

type Logger struct {
	// contains filtered or unexported fields
}

func NewLogger

func NewLogger(logger *log.Logger) *Logger

func (*Logger) Println

func (l *Logger) Println(args ...interface{})

type Page

type Page struct {
	Page *rod.Page
}

func NewPage

func NewPage(b BrowserManager) (*Page, error)

func (*Page) Close

func (p *Page) Close() error

func (*Page) Element

func (p *Page) Element(selector, jsRegex string) (*rod.Element, error)

func (*Page) Elements

func (p *Page) Elements(selector string) (rod.Elements, error)

func (*Page) Eval

func (p *Page) Eval(s string, args ...interface{}) (*proto.RuntimeRemoteObject, error)

func (*Page) Prepare

func (p *Page) Prepare(url string, headers []string, viewport *PageViewportOpts) error

func (*Page) Screenshot

func (p *Page) Screenshot(file string, full bool) error

func (*Page) ScreenshotFullPage

func (p *Page) ScreenshotFullPage(file string) error

func (*Page) Scroll

func (p *Page) Scroll(offsetX, offsetY float64, steps int) error

func (*Page) ScrollDown

func (p *Page) ScrollDown(sleep time.Duration) error

func (*Page) ScrollHeight

func (p *Page) ScrollHeight() (float64, float64, error)

type PageManager

type PageManager interface {
	Prepare(url string, headers []string, viewport *PageViewportOpts) error
	Close() error

	Eval(s string, args ...interface{}) (*proto.RuntimeRemoteObject, error)
	Scroll(offsetX, offsetY float64, steps int) error
	ScrollHeight() (float64, float64, error)
	ScrollDown(sleep time.Duration) error
	Elements(selector string) (rod.Elements, error)
	Screenshot(file string, full bool) error
	ScreenshotFullPage(file string) error
}

type PagePool

type PagePool struct {
	Pool chan PageManager
}

func NewPagePool

func NewPagePool(limit int) *PagePool

func (PagePool) Cleanup

func (pp PagePool) Cleanup() error

func (PagePool) Get

func (pp PagePool) Get(browser BrowserManager) (*Page, error)

func (PagePool) Put

func (pp PagePool) Put(p PageManager)

type PagePoolManager

type PagePoolManager interface {
	Get(browser BrowserManager) (*Page, error)
	Put(p PageManager)
	Cleanup() error
}

type PageViewportOpts

type PageViewportOpts struct {
	Width  int
	Height int
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL